Cute Happy Ghost
본문 바로가기
JAVA/Java

20201014_15 AWT로 작성한 GUI프로그램

by JENN_tech7 2020. 10. 14.
728x90
SMALL

물론 이 코드는,,, 어쩌고 입니다...

교재 93p

package MyGui;

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

//AWT화면을 구성하는 클래스
public class MyFrame {
	private Frame fr;//메인 화면 객체
	private Label label;
	private Panel panel;
	
	public MyFrame() {
		initFrame();
	}
	
	//메인화면에 대한 설정
	private void initFrame() {
		fr = new Frame("First GUI");
		fr.setSize(300, 300);
		fr.setLayout(new GridLayout(3,1));
		fr.setVisible(true);
		
		//GUI 프로그램 종료 이벤트 처리
		fr.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		//간단한 구문을 표현하는 label 객체
		label = new Label();
		label.setText("제가 보이시나요?");
		label.setAlignment(Label.CENTER);
		label.setSize(200, 100);
		
		//버튼을 담고 있을 panel 객체
		panel = new Panel();
		panel.setLayout(new FlowLayout());
		
		//panel과 label을 frame 에 추가하고 화면에 보이도록 함
		fr.add(panel);
		fr.add(label);
		fr.setVisible(true);
	}
	
	//버튼을 생성하고 클릭 이벤트를 처리하는 메소드
	void showButton() {
		Button btnOK = new Button("OK");
		Button btnCancel = new Button("Cancel");
		
		//btnOK 버튼을 클릭할 경우 label 에 "확인" 문구 출력
		btnOK.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				label.setText("확인");
			}
		});
		//btnCancel 버튼을 클릭할 경우 label 에 "취소"문구 출력
		btnCancel.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				label.setText("취소");
			}
		});
		//panel 객체에 2개의 버튼을 추가하고 frame에 출력
		panel.add(btnOK);
		panel.add(btnCancel);
		fr.setVisible(true);
	}
}
package MyGui;

public class ExGUI {

	public static void main(String[] args) {
		MyFrame mfr = new MyFrame();
		mfr.showButton();
	}

}

메인은 진심 한두줄에 불과함 저것도 그냥 new로하면 한줄될듯

 

 

 

 

 

실행하면 이렇게 뜸

 

 

 

 

ok누르면 확인

cancel누르면 취소

잼땅 ㅎㅎ

 

 

 

 

 

 

  • 컨텐트팬의 배경색을 오렌지색으로 하고 이곳에 OK, Cancel, Ignore버튼들을 부착한 스윙 프로그램을 작성하라
package MyGui;

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

public class ContentPaneEx extends JFrame {
	public ContentPaneEx() {
		setTitle("ContentPane과 JFrame");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container contentPane = getContentPane();
		contentPane.setBackground(Color.ORANGE);
		contentPane.setLayout(new FlowLayout());
		
		contentPane.add(new JButton("OK"));
		contentPane.add(new JButton("Cancel"));
		contentPane.add(new JButton("Ignore"));

		setSize(300, 150);
		setVisible(true);
	}
	public static void main(String[] args) {
		new ContentPaneEx();
	}

}

 

 

우왕 ㅠㅠ 너무 귀엽다..

 

 

 

히히//...

 

 

 

 

 

 

 

 

 

package MyGui;

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

public class GridLayoutEx extends JFrame{
	public GridLayoutEx() {
		setTitle("GridLayout Sample");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		GridLayout grid = new GridLayout(4,2);
		grid.setVgap(5);
		
		Container c = getContentPane();
		c.setLayout(grid);
		c.add(new JLabel("이름"));
		c.add(new JTextField(""));
		c.add(new JLabel("학번"));
		c.add(new JTextField(""));
		c.add(new JLabel("학과"));
		c.add(new JTextField(""));
		c.add(new JLabel("과목"));
		c.add(new JTextField(""));
		setSize(300, 200);
		setVisible(true);
	}
	public static void main(String[] args) {
		new GridLayoutEx();
	}

}

짱귀엽다!!!!!!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

package MyGui;

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

public class IndepClassListener extends JFrame {
	public IndepClassListener() {
		setTitle("Action 이벤트 리스너 예제") ;
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container c = getContentPane();
		c.setLayout(new FlowLayout());
		JButton btn = new JButton("Action");
		btn.addActionListener(new MyActionListener());//Action리스터 달기
		c.add(btn);
		
		setSize(350, 150);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new IndepClassListener();
	}

}
class MyActionListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		JButton b = (JButton)e.getSource();
		if (b.getText().equals("Action")) {
			b.setText("액션");
		}else
			b.setText("Action");
	}
}

누르면 바뀜 ㅎ

728x90
LIST

댓글