JAVA 기초

JAVA 20-2

Vanillwa 2023. 9. 7. 19:50

 

JFrame

자바에서 구현되는 하나의 창

package ex1_frame;

import javax.swing.JFrame;

public class Ex1_Jframe {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setTitle("첫번째 프레임");
		//f.setLocation(30,30); // x,y 좌표
		//f.setSize(400,400); // 너비, 높이
		f.setBounds(30,30,400,400); // x,y,너비,높이
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 종료
		f.setVisible(true); // 보이게 만들어주기
	}
}

실행 결과

 


 

JButton

package ex2_jbutton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JButtonTest extends JFrame {
	JButton jbtn1, jbtn2, jbtn3;
	public JButtonTest() {
		super("버튼(JButton) 추가!");
		
		setLayout(null); // 레이아웃 요소 수동배치
		
		jbtn1 = new JButton("1");
		jbtn2 = new JButton("2");
		jbtn3 = new JButton("3");
		
		jbtn1.setBounds(10,10,70,70);
		jbtn2.setBounds(90,10,70,70);
		jbtn3.setBounds(170,10,70,70);
		
		add(jbtn1);
		add(jbtn2);
		add(jbtn3);
		
		setBounds(30,30,400,400);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		new JButtonTest();
	}
}

실행 결과

 


 

JButton Event

package ex2_jbutton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;

public class JButtonEventTest {
	public static void main(String[] args) {
		JFrame f = new JFrame("ActionEvent 처리");
		f.setLayout(null);

		JButton btnArray[] = new JButton[4];

		btnArray[0] = new JButton("입력");
		btnArray[1] = new JButton("확인");
		btnArray[2] = new JButton("옵션");
		btnArray[3] = new JButton("메세지");

		btnArray[0].setBounds(10, 10, 80, 80);
		btnArray[1].setBounds(100, 10, 80, 80);
		btnArray[2].setBounds(200, 10, 80, 80);
		btnArray[3].setBounds(300, 10, 80, 80);

		ActionListener al = new ActionListener() { // 공통감지자

			@Override
			public void actionPerformed(ActionEvent e) {
				//e.getActionCommand() : 내가 누른 버튼에 쓰여있는 문자열 반환
				switch(e.getActionCommand()) {
				case "입력":
					System.out.println("입력버튼 누름");
					break;
				case "확인":
					System.out.println("확인버튼 누름");
					break;
				case "옵션":
					System.out.println("옵션버튼 누름");
					break;
				case "메세지":
					System.out.println("메세지버튼 누름");
					break;
				}
			}
		};

		for (int i = 0; i < btnArray.length; i++) {
			btnArray[i].addActionListener(al);
			f.add(btnArray[i]);
		}

		f.setBounds(40, 40, 420, 400);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

실행 결과 : 버튼을 누를 때 마다 해당하는 텍스트 출력

 


 

JPanel

package ex3_jpanel;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

//JPanel은 JFrame에 붙히는 중간 컨테이너
//요소를 그룹별로 묶어서 관리하기 편해짐

//배치관리자
//FlowLayout : 왼쪽에서 오른쪽으로 배치, 오른쪽에 공간이 없으면 아래로 배치
//BorderLayout : 동서남북 + 중앙 5개의 영역으로 나눠서 배치
//GridLayout : 2차원 표 모양으로 n x n 으로 설정하며 왼쪽에서 오른쪽, 위에서 아래 순으로 배치
//CardLayout : 요소를 포개어 배치
//Null : 레이아웃을 사용하지 않으며 수동으로 배치

public class Ex1_JPanel extends JFrame {
	public Ex1_JPanel() {
		super("FlowLayout Ex");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		JPanel p1 = new JPanel();
		p1.setBackground(Color.YELLOW); // 배경색 지정
		p1.setLayout(new FlowLayout()); // FlowLayout 지정
		//p1.setLayout(new GridLayout(3,2));
		//p1.setLayout(new BorderLayout());

		for (int i = 1; i <= 5; i++) {
			String str = Integer.toString(i);
			p1.add(new JButton(str));
		}

		add(p1);
		setBounds(30, 30, 300, 200);
		setVisible(true);
	}

	public static void main(String[] args) {
		new Ex1_JPanel();
	}
}

실행 결과

 


 

'JAVA 기초' 카테고리의 다른 글

JAVA 21-2  (0) 2023.09.08
JAVA 21-1  (0) 2023.09.08
JAVA 20-1  (0) 2023.09.07
JAVA 19-2  (0) 2023.09.06
JAVA 19-1  (0) 2023.09.06