본문 바로가기

자바 GUI 배치 연습하기...

 

 

오늘도 간단하게

자바 Gui 구성과 배치를

연습해보겠습니다.

만들어볼 GUI는

우리가 자주 먹는

치킨 주문 창입니다.

 

그림판으로 만들기전에 그려본다.

 

치킨의 종류와

몇 인분을 먹을 것인가?

요즘에 많이 하는 리뷰 이벤트를

신청할 것인가?

결제방식은 어떻게 할 것인가?

 

우선 만들기 전에 생각을 해봅니다.

내가 JLabel을 사용할 것인가?

아니면 JButton or JRadioButton

or JCheckBox를 사용할 것인가?

 

저는 몇 인분?

이것만 JCheckBox로 만들고

나머지는 JRadioButton으로

만들어보겠습니다.

 

< Try 1 >

 

< Try 2 >

 

 

< Try 3 >

 

 

세 번째 수정을 끝으로

제가 원하는 구성으로

만들었습니다.

 

처음에는 감이 잘 잡히지

않던 Gui, Swing이 조금씩

코드를 치다 보니

이렇게 이해가

잘 되기 시작하네요.

 

그럼 저는 여기까지

하겠습니다.

 

자세한 코드는

아래의 코드블럭을

참고해주세요.

 

감사합니다.

 

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Panel;

import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.TitledBorder;

public class Chicken extends JFrame {
	
	private JRadioButton rbtnFried; // 후라이드치킨
	private JRadioButton rbtnYangNyeom; // 양념치킨
	private JRadioButton rbtnSoySauce; // 간장치킨
	
	private JCheckBox cboxOne; // 1인분
	private JCheckBox cboxTwo; // 2인분
	private JCheckBox cboxThree; // 3인분
	
	private JRadioButton rbtnReview; // 리뷰신청
	
	private JRadioButton rbtnCash; // 현금결제
	private JRadioButton rbtnCard; // 카드결제
	
	public Chicken() {
		init();
		setDisplay();
		showFrame();
	}
	
	private void init() {
		rbtnFried = new JRadioButton("후라이드");
		rbtnYangNyeom = new JRadioButton("양념");
		rbtnSoySauce = new JRadioButton("간장");
		
		cboxOne = new JCheckBox("1인분");
		cboxTwo = new JCheckBox("2인분");
		cboxThree = new JCheckBox("3인분");
		
		rbtnReview = new JRadioButton("신청");
		
		rbtnCash = new JRadioButton("현금");
		rbtnCard = new JRadioButton("카드");
		
		ButtonGroup rbtn1 = new ButtonGroup();
		rbtn1.add(rbtnFried);
		rbtn1.add(rbtnYangNyeom);
		rbtn1.add(rbtnSoySauce);
		
		ButtonGroup rbtn2 = new ButtonGroup();
		rbtn2.add(cboxOne);
		rbtn2.add(cboxTwo);
		rbtn2.add(cboxThree);
		
		ButtonGroup rbtn3 = new ButtonGroup();
		rbtn3.add(rbtnCash);
		rbtn3.add(rbtnCard);
	}
	private void setDisplay() {
		
		// 치킨 종류를 담은 패널
		JPanel pnlChicken1 = new JPanel(new GridLayout(1,0));
		pnlChicken1.add(rbtnFried);
		pnlChicken1.add(rbtnYangNyeom);
		pnlChicken1.add(rbtnSoySauce);
		pnlChicken1.setBorder(new TitledBorder("치킨의 종류"));
		// 치킨의 양을 담은 패널
		JPanel pnlChicken2 = new JPanel(new GridLayout(1,0));
		pnlChicken2.add(cboxOne);
		pnlChicken2.add(cboxTwo);
		pnlChicken2.add(cboxThree);
		pnlChicken2.setBorder(new TitledBorder("치킨의 양"));
		// 치킨 종류와 양을 담은 패널
		JPanel pnlNorth = new JPanel(new BorderLayout());
		pnlNorth.add(pnlChicken1, BorderLayout.NORTH);
		pnlNorth.add(pnlChicken2, BorderLayout.CENTER);
		// 리뷰이벤트 신청 패널
		JPanel pnlCenter = new JPanel();
		pnlCenter.add(rbtnReview);
		pnlCenter.setBorder(new TitledBorder("리뷰이벤트"));
		// 현금 or 카드 결제 방식 패널
		JPanel pnlSouth = new JPanel();
		pnlSouth.add(rbtnCash);
		pnlSouth.add(rbtnCard);
		pnlSouth.setBorder(new TitledBorder("결제방법"));
		
		add(pnlNorth, BorderLayout.NORTH);
		add(pnlCenter, BorderLayout.CENTER);
		add(pnlSouth, BorderLayout.SOUTH);
	}

	private void showFrame() {
		setTitle("Chicken");
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
		setResizable(false);
	}

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

93 DL

Develop Life