BorderLayout은 아래 그림처럼 컨테이너를 5개의 영역으로 구분하고 각각의 영역에 컴포넌트를 배치할수 있다.
 

Page Start

Line Start

Center

Line End

Page End

import javax.swing.*;
import java.awt.*;

public class MyFrame extends JFrame
{

    public MyFrame()
    {
        this.setTitle("BorderLayout");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
       
        panel.add(new JButton("E"),BorderLayout.EAST);
        panel.add(new JButton("W"),BorderLayout.WEST);
        panel.add(new JButton("S"),BorderLayout.SOUTH);
        panel.add(new JButton("N"),BorderLayout.NORTH);
        panel.add(new JButton("C"),BorderLayout.CENTER);
        this.add(panel);
       
        this.pack();//프레임을 패널 크기에 맞추기
        this.setVisible(true);
    }

}

빨간부분 작성하기


import javax.swing.*;

public class MyFrame extends JFrame
{
    private JPanel p;
    private JLabel label1;
    public JButton button1;
    public JButton button2;
    public JTextField text1;
    public JTextField text2;
   
    public MyFrame()
    {
        this.setSize(300, 200);
        this.setTitle("2006242011 김동영");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        p = new JPanel();
        label1 = new JLabel("반지름의 값을 입력하시오 : ");         text1 = new JTextField(3);
        button1 = new JButton("원의 면적 계산");
        button2 = new JButton("원의 둘레길이 계산");
        text2 = new JTextField(20);
       
        p.add(label1);
        p.add(text1);
        p.add(text2);
        p.add(button1);
        p.add(button2);
        
        add(p);
        MyListener ml = new MyListener(this);
        button1.addActionListener(ml);
        button2.addActionListener(ml);
        
       
        
        this.setVisible(true);
    }
}








import javax.swing.*;
import java.awt.event.*;

public class MyListener implements ActionListener
{
    private MyFrame f;
    
    public MyListener(MyFrame f)
    {
        this.f = f;
    }
   
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == f.button1)
        {
            String text = f.text1.getText(); 
            int r = Integer.parseInt(text);
           
            double result = r * r * 3.14;
            f.text2.setText("원의 면적 = " + result);
        }
       
        else if(e.getSource() == f.button2)
        {
            String text = f.text1.getText(); 
            int r = Integer.parseInt(text);
           
            double result = r * 2 * 3.14;
            f.text2.setText("원의 둘레길이 = " + result); 
        }
    }
}




1.event object : button
2.event type : ActionEvent
3.인터페이스 구현하려면 작성해야할 메소드 : actionPerformed
4.자신의 학번 뒤에 세자리 입력해서 원의 면적,둘레길이 구하시오






532~533p 예제 프로그램
두 개의 버튼을 만들어서 패널의 배경 색을 변경하는 프로그램을 작성
배경색은 패널의 setBackground()메소드 이용



이벤트(event) : 마우스로 버튼을 클릭하는 것처러 어떤 동작에 의하여 발생한다.
이벤트 객체(event object): 이벤트에 대한 여러 정보를 가지고 있다.
이벤트 소스(event source): 이벤트를 발생시킨 컴포넌트

ex)사용자가 버튼을 클릭하는 경우에는 버튼 컴포넌트가 이벤트 소스가 되어서 이벤트 객체를 생성

이벤트 리스너(event listener): 이벤트 객체에 반응하여 이벤트를 처리하는 객체

이벤트 처리과정
         1.이벤트를 발생하는 컴포넌트를 생성하여야 한다.
         2.이벤트 리스너 클래스를 작성한다.
         3.이벤트 리스너를 이벤트 소스에 등록한다.


   
컴포넌트(component) 
   레이블, 버튼이나 텍스트 필드와 같은 GUI를 작성하는 기본적인 빌딩 블록을 의미 하는 것으로 시스템에서는 컨트롤 (control)이라고 부른다.
AWT(Abstract Windows Toolkit)
  운영 체제가 제공하는 자원을 이용하여 컴포넌트를 생성한다.
Swing(AWT보다 발전한 클래스)
  컴포넌트가 자바로 작성되어 있기 때문에 어떤 플랫폼에서도 일관된 화면을 보여줄 수 있다.
  특징 : JFC(Java Foundation Class)의 일부로 에플리케이션에 그래픽 사용자 인터페이스, 풍부한 그래픽 기능, 다양한 언어와 다양한 입력장치들을 지원한다.

컨테이너
 자바가 제공하는 컴포넌트는 크게 기본 컴포넌트와 컨테이너 컴포넌트로 나누어진다. 컨테이너란 다른 컴포넌트들을 내부에 넣을 수 있는 컴포넌트를 의미한다.
1.최상위 컨테이너
 절대 다른 컨테이너 안에 포함될 수 없는 컨테이너, 프레임(JFrame),다이알로그(JDialog),애플릿(JApplet)
2.일반 컨테이너
 다른 컨테이너 안에 포함 될 수 있는 컨테이너, 패널(JPanel),스크롤 페인(JScrollPane)
GUI 작성 절차
 
최상위 컨테이너 생성->컴포넌트 추가

프레임 생성하기 #1
import javax.swing.*;
public class FrameTest
{
  public static void main(String args[])
  {
        JFrame f=new JFrame("2006242011김동영");
        f.setSize(300,200);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true); //화면에 띄우기
  }
}
프레임 생성하기 #2
import javax.swing.*;
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        setSize(300,200);
        setTitle("2006242011김동영");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}

 프레임 생성하기 #3
import javax.swing.*;
public class MyFrame extends JFrame
{
   
    public MyFrame()
    {
        setSize(300,200);
        setTitle("2006242011김동영");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
}


public class FrameTest3
{
   public static void main(String args[])
   {
       MyFrame f=new MyFrame();
    }
}

컴포넌트 생성 및 추가#1
import javax.swing.*;
import java.awt.*; //FlowLayout class 사용하기위해
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        JButton b=new JButton("버튼"); //버튼을 생성
       
JPanel p=new JPanel();
        p.add(b); //패널에 버튼추가
        this.add(p); //패널을 프레임에 추가
        setSize(300,200); //프레임 크기설정
        setTitle("2006242011김동영");
        setLayout(new FlowLayout()); //프레임의 배치 관리자 설정
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}
 
컴포넌트 생성 및 추가#2
import javax.swing.*;
import java.awt.*; //FlowLayout class 사용하기위해
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        JLabel l=new JLabel("안녕하세요");
        JButton b=new JButton("버튼");
        JLabel m=new JLabel();
        m.setText("김동영");
        JTextField t=new JTextField("123456789");      
        JPanel p=new JPanel();
        p.add(l);
        p.add(b);
        p.add(m);
        p.add(t);
        this.add(p);
        setSize(300,200);
        setTitle("2006242011김동영");
        setLayout(new FlowLayout()); //FlowLayout:위치를 잡아주는 객체
       
        m.setText(t.getText());
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}
 
 

+ Recent posts