본문 바로가기

자바 Gui, Swing 기초 연습하기

 

오늘은 간단한 Gui 배치를

연습해보겠습니다.

 

 

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

public class BorderEx extends JFrame {
	
	
	JLabel lblTitle; // 타이틀
	JLabel lblName; // 이름
	JLabel lblNumber; // 번호
	JTextField tfName; // 이름 입력창
	JTextField tfNumber; // 번호 입력창
	JButton btnSave; // 저장 버튼
	JButton btnReset; // 리셋 버튼
	
	public BorderEx() {
		init();
		setDisplay();
		showFrame();
	}
	private void init() {
		lblTitle = new JLabel("이름과 번호를 입력하세요.");
		lblName = new JLabel("Name");
		lblNumber = new JLabel("Number");
		tfName = new JTextField(10);
		tfNumber = new JTextField(10);
		btnSave = new JButton("Save");
		btnReset = new JButton("Reset");
	}
	private void setDisplay() {
		
		JPanel pnlNorth = new JPanel();
		pnlNorth.add(lblTitle);
		pnlNorth.setBorder(new TitledBorder("North"));
		
		JPanel pnlWest = new JPanel(new GridLayout(0,1,0,10));
		pnlWest.add(lblName);
		pnlWest.add(lblNumber);
		pnlWest.setBorder(new TitledBorder("West"));
		
		JPanel pnlEast = new JPanel(new GridLayout(0,1,0,10));
		pnlEast.add(tfName);
		pnlEast.add(tfNumber);
		pnlEast.setBorder(new TitledBorder("East"));
		
		JPanel pnlSouth = new JPanel();
		pnlSouth.add(btnSave);
		pnlSouth.add(btnReset);
		pnlSouth.setBorder(new TitledBorder("South"));
		
		add(pnlNorth, BorderLayout.NORTH);
		add(pnlWest, BorderLayout.WEST);
		add(pnlEast, BorderLayout.EAST);
		add(pnlSouth, BorderLayout.SOUTH);
	}

	private void showFrame() {
		setTitle("GUI");
		pack();
		setLocationRelativeTo(null);
		setResizable(false); // 창을 고정
		setVisible(true);
		
	}
	public static void main(String[] args) {
		new BorderEx();
	}
}

 

저는 이렇게 작성을 했지만,

다른 방법도 많습니다.

어떻게 코드를

바라보느냐의 차이기 때문에

이 부분에 대해서는

자기 스스로가 생각을 해보고

나만의 방법을 찾는 것이

좋다고 생각합니다.

 

저는 다음에 다른 예제로

찾아오겠습니다.

 

감사합니다.

 

93 DL

Develop Life