'개발 및 관리/Java'에 해당되는 글 100건

  1. 2013.01.25 FileWriter
  2. 2013.01.25 정적 변수(Static Variable)도 직렬화(Serializable) 되나요?
  3. 2013.01.25 Head First Java p.441
  4. 2013.01.25 ArrayList VS 일반배열
  5. 2013.01.24 BeatBox.java
  6. 2013.01.24 JList
  7. 2013.01.24 JCheckBox
  8. 2013.01.24 JTextArea
  9. 2013.01.24 JTextField
  10. 2013.01.24 Layout Manager

FileWriter

개발 및 관리/Java 2013. 1. 25. 14:38 posted by HighLighter
반응형

String을 텍스트 파일에 저장하는 방법

WriteAFile.java

반응형
반응형

 

 아니다. '정적'이라는 것은 '객체마다 하나씩'이 아닌 '클래스마다 하나씩'을 의미한다. 정적변수는 저장되지 않고 객체를 역직렬화할 때 현재 정적 변수에 들어있는 값을 받게 된다. 따라서 직렬화할 때 현재 정적 변수에 들어있는 값을 받게 된다. 따라서 직렬화할 수 있는 객체를 만들 때는 동적으로 바뀔 수 있는 정적 변수에 의존하지 않게 만들어야 한다. 왜냐하면 객체를 복구했을 때 원래 값과 다른 값을 가지게 되면 안되므로......

 

 직렬화할 때 어떤 객체를 건너뛰고 싶다면 transient 키워드를 사용하면 된다. 그 변수는 복구될 때 널(객체 레퍼런스인 경우) 또는 기본값(원시 변수인 경우)을 할당 받게 된다.

 

참조) Head First Java p.458

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Iterator, QuizCardBuilder.java , QuizCardReader.java  (0) 2013.01.25
FileWriter  (0) 2013.01.25
Head First Java p.441  (0) 2013.01.25
ArrayList VS 일반배열  (0) 2013.01.25
BeatBox.java  (0) 2013.01.24

Head First Java p.441

개발 및 관리/Java 2013. 1. 25. 13:17 posted by HighLighter
반응형

 

테스트 자바 코드

- 어떤 코드에서 어떤 레이아웃을 만들까?

 

Test01.java

 

Test02.java

 

Test03.java

 

Test04.java

 

Test05.java

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

FileWriter  (0) 2013.01.25
정적 변수(Static Variable)도 직렬화(Serializable) 되나요?  (0) 2013.01.25
ArrayList VS 일반배열  (0) 2013.01.25
BeatBox.java  (0) 2013.01.24
JList  (0) 2013.01.24

ArrayList VS 일반배열

개발 및 관리/Java 2013. 1. 25. 12:12 posted by HighLighter
반응형

ArrayList

일반배열

ArrayList<Type> myList

= new ArrayList <Type> ();

String[] myList = new String[2];

 

 

String a = new String(“whoohoo”);

String a = new String(“whoohoo”);

myList.add(a);

myList[0] = a;

 

 

String b = new String(“Frog”);

String b = new String(“Frog”);

myList.add(b);

myList[1] = b;

 

 

int theSize = myList.size();

Int theSize = myList.length;

 

 

Object o = myList.get(1);

String o = myList[1];

 

 

myList.remove(1);

myList[1] = null;

 

 

Boolean isIn = myList.contains(b);

Boolean isIn = false;

for (int i = 0 ; i < myList.length; i++) {

if( b.equals(myList[i])) {

  isIn = true;

  break;

}

}

 

Head First Java p.164

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

정적 변수(Static Variable)도 직렬화(Serializable) 되나요?  (0) 2013.01.25
Head First Java p.441  (0) 2013.01.25
BeatBox.java  (0) 2013.01.24
JList  (0) 2013.01.24
JCheckBox  (0) 2013.01.24

BeatBox.java

개발 및 관리/Java 2013. 1. 24. 23:41 posted by HighLighter
반응형

 

ArrayList<JCheckBox> checkboxList; //체크상자는 ArrayList에 저장한다.

checkboxList = new ArrayList <JCheckBox> ();

 

 

BeatBox.java

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Head First Java p.441  (0) 2013.01.25
ArrayList VS 일반배열  (0) 2013.01.25
JList  (0) 2013.01.24
JCheckBox  (0) 2013.01.24
JTextArea  (0) 2013.01.24

JList

개발 및 관리/Java 2013. 1. 24. 21:06 posted by HighLighter
반응형

 

1. 생성자

//JList 생성자는 임의의 객체 유형의 배열을 받아들인다. 반드시 String일 필요는 없지만

//실제 목록에 표시될 때는 String 형태로 표현된다.

String[] listEntries = {"alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta"};

 list = new JList(listEntries);

 

2. 사용 방법

1)수직 스크롤 바가 들어가야 한다.

//JTextArea를 만들 때하고 동일하다. 목록을 넘겨주면서 JScrollPane을 만들고 목록이 아닌

//그 스크롤 틀을 패널에 추가해야 한다.

JScrollPane scroller = new JScrollPane(list);

scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

 

panel.add(scroller);

 

2)스크롤하기 전에 보여줄 행의 개수를 설정한다.

list.setVisibleRowCount(3);

 

3)한 번에 하나만 선택할 수 있도록 설정한다.

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

 

4)목록 선택 이벤트에 등록한다.

list.addListSelectionListener(this);

 

5)이벤트를 처리한다.(목록에서 어떤 항목에 선택되었는지 알아낸다.)

public void valueChanged(ListSelectionEvent lse) {

     //if문을 집어넣지 않으면 이벤트를 두 번 받게 된다.

if( !lse.getValueIsAdjusting()) {

      //getSelectedValue()에서는 Object를 리턴한다. 목록에 String 객체만 들어갈 수 있는 것은 아니다.

String selection = (String) list.getSelectedValue();

System.out.println(selection);

}

}

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

ArrayList VS 일반배열  (0) 2013.01.25
BeatBox.java  (0) 2013.01.24
JCheckBox  (0) 2013.01.24
JTextArea  (0) 2013.01.24
JTextField  (0) 2013.01.24

JCheckBox

개발 및 관리/Java 2013. 1. 24. 20:53 posted by HighLighter
반응형

 

1. 생성자

 JCheckBox check = new JCheckBox("Hello World!");

 

2. 사용방법

1)아이템 이벤트(선택 혹은 선택 해제하는 이벤트)를 감시한다.

 check.addItemListener(this);

 

2)이벤트를 처리한다.(선택 여부를 알아낸다.)

public void itemStateChanged(ItemEvent ev) {

  String onOrOff = "off";

  if(check.isSelected()) onOrOff = "on";

  System.out.println("Check box is" + onOrOff);

}

 

3)코드에서 선택 또는 선택 해제를 처리한다.

check.setSelected(true);

check.setSelected(false);

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

BeatBox.java  (0) 2013.01.24
JList  (0) 2013.01.24
JTextArea  (0) 2013.01.24
JTextField  (0) 2013.01.24
Layout Manager  (0) 2013.01.24

JTextArea

개발 및 관리/Java 2013. 1. 24. 20:44 posted by HighLighter
반응형

 

JTextField와 달리 JTextArea에는 여러 행의 텍스트가 들어 갈 수 있다. 행 넘기기(line wrapping) 기능이나 스크롤 바가 자동으로 설정되지 않기 때문에 만드는 과정에서 몇 가지 설정을 해야 한다. JTextArea에 스크롤 기능을 추가하려면 그 구성요소를 ScrollPane(스크롤 틀 클래스)에 집어넣어야 한다. ScrollPane은 스크롤 기능을 제공하는 객체이며 텍스트 영역의 스크롤 기능을 책임진다.

 

1. 생성자

 JTextArea text = new JTextArea(10,30); //10행, 30열

 

2. 사용방법

1)수직 스크롤 바를 만든다.

 //JScrollPane을 만들고 그 객체에 스크롤 기능을 추가해야 하는 텍스트 영역을 전달한다.

 JScrollPane scroller = new JScrollPane(text);

 //행 넘기기 기능(line wrapping)을 킨다.

 text.setLineWrap(true);

 

 //스크롤 틀에 수직 방향의 스크롤 바만 집어 넣도록 지시한다.

 scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

 scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

 

 //중요한 부분!!! 텍스트 영역을(스크롤 틀 생성자를 통해서) 스크롤 틀에 전달한 다음 그 스크롤 틀을

 //패널에  추가한다. 텍스트 영역을 패널에 직접 추가하지 않는다.

 panel.add(scroller);/

 

2)그 안에 있는 텍스트를 바꾼다.

 text.setText("First Hello World!");

 

3)텍스트를 추가한다.

 text.append("Second Hello World!");

 

4)필드에 들어있는 텍스트를 선택/강조한다.

 text.selectAll();

 

5)커서를 다시 필드에 위치시킨다.(사용자가 바로 타이핑할 수 있게 설정)

 text.requestFocus();

 

 

TextAreal.java

 

cf.

1) JLabel
 
- JLabel(String) : 문자열 레이블 생성
- JLabel(String, int) : 문자열과 정렬 상태 레이블 생성
- JLabel(String, Icon, int) : 문자열과 아이콘, 정렬 상태 레이블 생성
JLabel test = new JLabel("Test",  SwingConstants.LEFT);
 
 
 
2) JTextField 


- JTextField() : 빈 텍스트 필드 생성
- JTextField(int) : 정해진 가로 길이를 갖는 텍스트 필드 생성
- JTextField(String, int) : 정해진 문장과 가로 길이를 갖는 텍스트 필드 생성


setText(String) 메소드는 텍스트를 원하는 문자열로 바꾸어 준다.
getText()메소드는 컴포넌트의 현재 텍스트값을 문자열로 반환해준다.
getSelectedText()는 사용자가 선택한 텍스트만을 검색해준다.
setEchoChar(Char) 메소드를 사용하여 입력되는 문자를 다른 특정한 문자로 바꿀 수 있다.
 


 3) JTextArea

 
- JTextArea(int, int) : 정해진 수의 행과 열을 갖는 텍스트 에어리어 생성
- JTextArea(String, int, int) : 정해진 수의 행과 열 그리고 정해진 스트링값을 갖는 텍스트 에어리어 생성
 
append(String, int) 메소드를 사용하여 원하는 문자를 현재 문자의 제일 끝에 추가할 수 있다.
insert(String, int) 메소드를 사용해서 원하는 문자를 원하는 위치에 삽입 할 수 있다.
setLineWrap(boolean)메소드는 텍스트가 컴포넌트의 끝을 넘긴다면 다음 줄로 넘어갈 것인지를 선택할 수 있다.
setWrapStyleWord(boolean)메소드는 텍스트가 다음 줄로 넘어갈 때 현재의 단어를 넘길 것인지, 현재의 문자를 넘길 것인지 결정한다.

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

JList  (0) 2013.01.24
JCheckBox  (0) 2013.01.24
JTextField  (0) 2013.01.24
Layout Manager  (0) 2013.01.24
SWING, AWT, SWT  (0) 2013.01.24

JTextField

개발 및 관리/Java 2013. 1. 24. 20:31 posted by HighLighter
반응형

1. 생성자

 JTextField field = new JTextField(10); //10열을 의미한다.

 JTextField field = new JTextField("Hello World!"); //10열을 의미한다.

 

2. 사용 방법

1)텍스트 필드에 들어있는 텍스트를 알아내는 방법

System.out.println(field.getText());

 

2)텍스트를 집어넣는 방법

field.setText("Hello World!");

field.setText(""); //이렇게 하면 필드에 들어있는 것을 지울 수 있다.

 

3)사용자가 리턴 또는 엔터 키를 눌렀을 때 ActionEvent를 받아 온다.

field.addActionListener(myActionListener); //사용자가 키를 누를 때마다 무조건 이벤트를 받아오고 싶다면 키 이벤트를 등록하면 된다.

 

4)필드에 들어있는 텍스트를 선택/강조한다.

field.selectAll();

 

5)커서를 필드로 돌려놓는다.(사용자가 타이핑을 시작할 수 있게)

field.requestFocus();

 

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

JCheckBox  (0) 2013.01.24
JTextArea  (0) 2013.01.24
Layout Manager  (0) 2013.01.24
SWING, AWT, SWT  (0) 2013.01.24
Animate.java - Head First Java p.412  (0) 2013.01.24

Layout Manager

개발 및 관리/Java 2013. 1. 24. 18:55 posted by HighLighter
반응형

 

Layout Manager(레이아웃 관리자) - 3가지 대표적인 Layout Manager

 

1.BorderLayout
BorderLayout 관리자는 배경 구성요소를 지역 다섯 개로 나눈다. BorderLayout 관리자에 의해 제어되는 배경에는 각 지역별로 구성요소 하나씩만 집어넣을 수 있다.
이 관리자에서 배치하는 구성요소는 일반적으로 요청한 크기대로 만들어지지 않는다.
BorderLayout은 프레임의 기본 Layout Manager이다.

BorderLayout에는 지역이 다섯 개 있다. EAST, WEST, NORTH, SOUTH, CENTER

BorderLayout에서 북쪽과 남쪽에 들어가는 구성요소의 높이는 원하는 대로 되지만 너비는 원하는 대로 되지 않는다. 동쪽과 서쪽에 들어가는 구성요소는 너비만 원하는대로 되고 높이는 그렇지 않다. 중앙에 들어가는 구성요소는 (pack()을 사용하는 경우를 제외하면) 그냥 남은 자리를 차지하게 된다.

pack() 메소드는 구성요소를 감싸는 랩과 비슷하다. 중앙에 들어가는 구성요소의 원하는 크기를 바탕으로 중앙을 시작점으로 하여 나머지 영역에 있는 것을 만드는 과정을 통해 프레임의 크기를 결정한다.

 

Button1.java

 

2.FlowLayout
FlowLayout 관리자는 단어가 아닌 구성요소를 배치한다는 점을 제외하면 워드 프로세서와 비슷한 식으로 작동한다. 각 구성요소의 크기는 그 구성요소에서 요청한대로
정해지며 추가된 순서대로, 그리고 '왼쪽 맞춤' 형태로 왼쪽에서 오른쪽으로 배치된다. 어떤 구성요소가 수평방향으로 들어맞지 않으면 다음 '행'에 배치된다.
FlowLayout은 패널의 기본 Layout Manager이다.

패널에서 FlowLayout이 아닌 다른 레이아웃 관리자를 사용하고 싶다면 패널에 대해 setLayout()을 호출한다.

 

 

Panel1.java

 

3.BoxLayout
BoxLayout 관리자는 각 구성요소마다 요청한 크기대로 만들어질 수 있다는 것, 그리고 추가된 순서대로 배치된다는 면에서 볼 때 FlowLayout과 비슷하다.
그러나 구성요소를 수직 방향으로 쌓을 수 있다는 점에서 FlowLayout과 다르다.(수평 방향으로 나열할 수도 있지만 수직 방향으로 늘어놓는 경우가 훨씬 많다.)
즉, FlowLayout과 비슷한데, 각 구성요소를 추가한 다음 매번 엔터키를 강제로 줄을 바꾸는 것이라고 생각해도 된다.

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

JTextArea  (0) 2013.01.24
JTextField  (0) 2013.01.24
SWING, AWT, SWT  (0) 2013.01.24
Animate.java - Head First Java p.412  (0) 2013.01.24
Head First Java - 12장 GUI 정리  (0) 2013.01.24