반응형
GUI 폼을 띄우는 법은 알아봤고, 이제 화면을 어떻게 구성할 수 있는지 알아보자.
1. 레이아웃 매니저 (aka 배치관리자)
UI 프로그래밍을 조금 더 편하게 해주는 방법이다. 원하는 컴포넌트를 추가하면 미리 정해진 방법으로 화면 안에 자동으로 정렬된다.
자바 튜토리얼에서 설명하고 있는 레이아웃 방식은 총 8가지이다. BorderLayout
, BoxLayout
, CardLayout
, FlowLayout
, GridBagLayout
, GridLayout
, GroupLayout
, SpringLayout
자세한 설명은 The Java™ Tutorials, '자바킹'님의 블로그 를 참고한다. Swing 기준이지만 awt에도 적용할 수 있다.
내가 테스트했던 코드 (FlowLayout)는 아래에.
import java.awt.*;
public class testprj {
Frame frame = new Frame("프레임 이름");
Button button1 = new Button("버튼1");
Button button2 = new Button("버튼2");
Button button3 = new Button("버튼3");
FlowLayout flow = new FlowLayout(); // Layout Manager
public void createFrame()
{
//프레임 크기 지정
frame.setSize(400, 400);
//프레임에 컴포넌트 추가
frame.add(button1);
frame.add(button2);
frame.add(button3);
// 레이아웃 세팅
frame.setLayout(flow);
//프레임 보이기
frame.setVisible(true);
}
public static void main(String[] args) {
testprj frm = new testprj();
frm.createFrame();
}
}
2. 손으로 일일이
컴포넌트의 위치와 크기를 일일이 지정해준다. 마음대로 만들 수 있지만 시간도 오래 걸릴 뿐만 아니라 크기 조절에 대응하는것도 어렵다.
import java.awt.*;
public class main {
Frame frame = new Frame("프레임 이름");
TextField txt = new TextField("텍스트내용");
Label lbl = new Label("테스트레이블");
Button btn = new Button("테스트버튼");
public void createFrame()
{
//레이아웃을 사용하지 않음
frame.setLayout(null);
//프레임 크기 지정
frame.setSize(400, 400);
//컴포넌트 크기, 위치 설정
lbl.setBounds(10,30,100,40); // x좌표,y좌표,너비,높이
txt.setBounds(10,70,100,40);
btn.setBounds(60,140,100,40);
//프레임에 컴포넌트 추가
frame.add(lbl);
frame.add(txt);
frame.add(btn);
//프레임 보이기
frame.setVisible(true);
}
public static void main(String[] args) {
//프레임 열기
main frm = new main();
frm.createFrame();
}
}
3. WindowBuilder 이용하기
WindowBuilder는 원래 SWT와 Swing을 이용해 개발할 때 사용할 수 있는 GUI 툴이지만 AWT에서도 사용할 수 있다.
먼저 이클립스 메뉴에서 Help > Eclipse Marketplace
로 들어가서 WindowBuilder를 검색한 뒤 Install을 눌러 설치한다.
Install을 누르면 뜨는 설치 창에서 org.eclipse.wb.rcp.SWT_AWT_support
는 꼭 체크가 되어 있어야 AWT에서 이용할 수 있으니 주의.
* 이유는 모르겠지만 오류가 나면서 설치가 안되고 있다. 나중에 다시 시도해보고 내용 추가 예정
반응형
'프로그래밍 스터디 > Java' 카테고리의 다른 글
자바 GUI에 데이터베이스 연동하기 (0) | 2017.02.15 |
---|---|
자바 GUI 개발하기 (0) | 2017.02.15 |
자바에서 MySQL 사용하기 (0) | 2017.02.14 |
자바 공부 시작 (0) | 2017.02.14 |