프로그래밍 언어/javastudy

간단한 스윙 프로그램 만들기/ 명품 자바 에센셜 8

fladi 2021. 7. 19. 21:13
728x90

 

 

저는 클래스를 4개 만들었습니다.

1. MyWin: JFrame을 상속받는 클래스

2. NorthPanel

3. CenterPanel

4. SwingEx: main을 포함하는 클래스

 

 

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

 

1) MyWin클래스

class MyWin extends JFrame {
	public MyWin() {
		super("window");
		setSize(300, 200);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		setVisible(true);
	}
}

main을 간결하게 만들기 위해 여기다가 넣어줬습니다.

 

 

 

2) NorthPanel 클래스

class NorthPanel extends JPanel {
	public NorthPanel() {
		setBackground(Color.LIGHT_GRAY);
		setLayout(new FlowLayout());
		
		JButton btn1 = new JButton("Open");
		JButton btn2 = new JButton("Read");
		JButton btn3 = new JButton("Close");
		
		btn1.setBackground(Color.pink);
		btn2.setBackground(Color.blue);
		btn3.setBackground(Color.green);
		
		add(btn1);
		add(btn2);
		add(btn3);
	}
}

이쁘게 만들고 싶어서 색을 넣어봤습니다. 

 

 

 

3) CenterPanel 클래스

class CenterPanel extends JPanel {
	public CenterPanel() {
		setLayout(null);
		setBackground(Color.orange);
		
		JLabel label = new JLabel("Hello Java!");
		label.setSize(100, 20);
		label.setLocation(100, 50);
		add(label);
	}
}

여기도 이쁘게 만들려고 배경색을 넣었습니다. 오렌지색이 망고젤리같은 색이라 아주 맘에 듭니다.

 

 

 

4) SwingEx 클래스

public class FlowLayoutEx{
	public static void main(String[] args) {
		MyWin win = new MyWin();
		NorthPanel north = new NorthPanel();
		CenterPanel center = new CenterPanel();
		
		Container contentpane = win.getContentPane();
		contentpane.setLayout(new BorderLayout());
		
		contentpane.add(north, BorderLayout.NORTH);
		contentpane.add(center, BorderLayout.CENTER);	
	}
}

JFrame에서 콘텐트팬을 가져와 BorderLayout으로 설정해주고,

North, Center클래스 객체를 만들어 각각 자리에 삽입해줬습니다.

 

 

<결과>

영롱하네요

728x90