'C'에 해당되는 글 116건

  1. 2007.11.07 Panel by 청웨일
  2. 2007.11.07 Frame by 청웨일
  3. 2007.11.07 컨테이너(Containers) by 청웨일
  4. 2007.11.07 스트림 연쇄화 by 청웨일
  5. 2007.11.07 StreamTokenizer by 청웨일

Panel

C/Java : 2007. 11. 7. 11:54

java.awt.Panel 클래스

- 직사각형의 일반적인 컨테이너

- 프레임의 제목과 border은 없다.

- 기본적으로 왼쪽에서 오른쪽으로 객체를 배치한다.

- 프레임 내부에 몇몇 컨테이너를 제공하도록 사용되기 때문에 화면을 배치할때 유연하다.


*

import java.awt.*;
import java.awt.event.*;

public class TestPanel extends Frame {
 TextField tf1;
 TextField tf2;
 
 public TestPanel() {

//두개의 텍스트필드가 문열을 받아 인스턴스화 한다.
  tf1 = new TextField("Directly on the Panel");
  tf2 = new TextField("Following the first TextField");
 //새로운 패널 생성 
  Panel p1 = new Panel();

//두개의 텍스트 필드가 첨부
  p1.add(tf1);
  p1.add(tf2);
//패널을 프레임에 추가 
  add(p1);


  addWindowListener(new WinCloser());
  setTitle("An Instantiated Frame");
  setBounds(100,100,300,300);
  setVisible(true);
 }
 
 public static void main(String[] args) {
  TestPanel tp = new TestPanel();
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*

사용자 삽입 이미지

- 직접 프레임에 텍스트를 넣지 않고 프레임에 추가된 패널을 이용하여 두개의 텍스트필드를 추가하였다.

Posted by 청웨일

Frame

C/Java : 2007. 11. 7. 11:52

1) Frame 클래스를 확장하여 응용 프로그램을 생성

*

import java.awt.*;
import java.awt.event.*;

public class FrameExtender extends Frame {
 public FrameExtender() {
  addWindowListener(new WinCloser ());
  setTitle("Just a Frame");
  setBounds(100, 100, 200, 200);
  setVisible(true);
 }
 
 public static void main(String args[]) {
  FrameExtender fe = new FrameExtender();
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*


2) main()메소드에서 Frame객체를 생성

*

import java.awt.*;
import java.awt.event.*;

public class FrameInstantiater {
 public FrameInstantiater() { }
 
 public static void main(String[] args) {
  Frame frame1= new Frame();
 
  frame1.addWindowListener(new WinCloser());
  frame1.setTitle("An Instantiated Frame");
  frame1.setBounds(100,100,300,300);
  frame1.setVisible(true);
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*

3) 직접 Frame에 GUI객체를 첨부하는 Frame의 add()메소드를 사용

(프레임에 객체를 위치시키는 가장 간단한 방법)

*

import java.awt.*;
import java.awt.event.*;

public class TextFieldInstantiater {
 public TextFieldInstantiater() { }
 
 public static void main(String[] args) {
  Frame frame1= new Frame();
  //텍스트 필드의 생성과 삽입
  TextField tf1 = new TextField("Directly on the Frame");
  TextField tf2 = new TextField("On the of the old text");
 
  frame1.add(tf1);     //위치지정 없음
  frame1.add(tf2);
 
  frame1.addWindowListener(new WinCloser());
  frame1.setTitle("An Instantiated Frame");
  frame1.setBounds(100,100,300,300);
  frame1.setVisible(true);
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}

*

사용자 삽입 이미지
Posted by 청웨일

컨테이너(Containers)

C/Java : 2007. 11. 7. 11:50

- 다른 그래픽 객체들을 담을 수 있다.

- 컨테이너는 다른 컨테이너 내부에서 불려지는 형태로 위치할 수 있다.


*컨테이너 클래스

- Applet : 브라우저에서 자바를 실행

- Frame : 제목과 border를 갖는 최상위 윈도우이다.

- Panel : 다른 패널을 포함하여 다른 컴포넌트를 부착할 수 있는 직사각형 공간

- ScrollPane : 자동으로 수평과 수직 스크롤바를 수현한 패널 클래스

- Dialog : 사용자에게 경고를 받거나 종료와 같은 작동을 확인하는 팝업 윈도우

Posted by 청웨일

스트림 연쇄화

C/Java : 2007. 11. 7. 11:49

혹은 체이닝


- 많은 입출력 클래스는 다른 스트림 형을 생성자의 매개변수로 사용한다.

- 스트림들로부터 스트림들을 추출하는 것을 연쇄화, 체이닝이라고 한다.

- 데이터의 형에 따라 가장 훌륭한 방법으로 각 스트림을 읽을수 있다.

- 만약 데이터가 텍스트이면 가장 좋은 방법은 BufferedReader이고,

  데이터가 기본자료형의 모임이면 DataInputStream을 사용하는 것이 좋다.

Posted by 청웨일

StreamTokenizer

C/Java : 2007. 11. 7. 11:49

* java.io.StreamTokenizer

- 토큰으로 나눔으로써 Reader를 분석하도록 도와주는 유틸리티 클래스

- Reader로부터 반환된 각각의 화이트 문자(공백)로 분리된 문자열을 요청할수 있다.

- 단어단위로 반환하는 것으로 생각할 수 있다.

- Reader 에 끝이 있다면 차례로 반환상태를 토큰으로 분석하고

  StreamTokenizer클래스의 public속성으로 유효한 값을 만든다.


*

//스트림의 끝(EOF)에 도달할 때까지 각각의 토큰을 읽는다.

//StreamTokenizer의 public속성인 sval에 접근, StreamTokenizer에 의해 읽혀진 String값을 검색한다.

import java.io.Reader;
import java.io.FileReader;
import java.io.StreamTokenizer;


public class StreamTokenizerEx {
 public static void main(String[] args) {
  try {
   Reader r = new FileReader("in.txt");
   StreamTokenizer st = new StreamTokenizer(r);
   while(st.nextToken() != StreamTokenizer.TT_EOF) {
    System.out.println(st.sval);
   }
   r.close();
  }
  catch(Exception e) {
   e.printStackTrace();
  }
 }
}
*


같은 폴더안에 in.txt라는 파일을 만들고 내용을 입력한다.

띄어쓰기를 포함한 한 문장을 입력해보자.



TT_EOF : 스트림의 끝을 읽었다는 것을 나타낸다.

TT_EOL : 라인의 끝을 읽었다는 것을 나타낸다.

TT_NUMBER : 숫자 토큰을 읽었다는 것을 나타낸다.

TT_WORD : 워드 토큰을 읽었다는 것을 나타낸다.

Posted by 청웨일