'C/Java'에 해당되는 글 59건

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

ScrollPane

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

java.awt.ScrollPane클래스


- 오직 한개의 객체만 배치한다.

- 여러 개의 객체를 포함시키려면 패널을 ScrollPane에 붙이고 패널위에 다른 객체를 붙인다.

- 수직 수평 옵션이 존재한다.

- 생성자에게 전달할수 있는 값 :

ScrollPane.SCROLLBARS_AS_NEEDED(기본값)

- 패널의 크기가 ScrollPane의 크기를 초솨할 때만 스크롤 바를 얻는다.

ScrollPane.SCROLLBARS_AS_ALWAYS

ScrollPane.SCROLLBARS_AS_NEVER

*

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

public class TestScrollPane extends Frame{
 ScrollPane sp;
 
 TextField tf1;
 TextField tf2;
 TextField tf3;
 TextField tf4;
 TextField tf5;
 TextField tf6;
 TextField tf7;
 TextField tf8;
 
 public TestScrollPane() {
  tf1 = new TextField("Text Field Number 1");
  tf2 = new TextField("Text Field Number 2");
  tf3 = new TextField("Text Field Number 3");
  tf4 = new TextField("Text Field Number 4");
  tf5 = new TextField("Text Field Number 5");
  tf6 = new TextField("Text Field Number 6");
  tf7 = new TextField("Text Field Number 7");
  tf8 = new TextField("Text Field Number 8");
 
  Panel p1 = new Panel();
  p1.add(tf1);
  p1.add(tf2);
  p1.add(tf3);
  p1.add(tf4);
  p1.add(tf5);
  p1.add(tf6);
  p1.add(tf7);
  p1.add(tf8);
 
  sp = new ScrollPane();       //ScrollPane의 인스턴스화
  sp.add(p1);                        //패널 추가
  add(sp);                           //객체가 아닌 프레임에 ScrollPane 추가
  addWindowListener(new WinCloser());
  setTitle("Using a ScrollPane");
  setBounds(100,100,300,300);
  setVisible(true);
 }
 
 public static void main(String[] args) {
  TestScrollPane tsp = new TestScrollPane();
 }
}

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

*

Posted 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 청웨일