JFrame을 상속받아 JPanel, JButton을 사용하는 코드 작성하기
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyPaner extends JFrame {
JPanel panel1; //JPanel 타입으로 panel 변수 선언하기
JPanel panel2;
JPanel panel3;
JPanel panel4;
JButton button1; //JButton 타입으로 button 변수 선언하기
JButton button2;
JButton button3;
JButton button4;
public MyPaner() { //메소드를 실행하는 생성자
initData();
setIninLayout();
}
private void initData() {
this.setTitle("panel 만들기"); //제목 설정
this.setSize(500, 500); //창 크기 설정
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 창 닫기 클릭 시 창 닫힘
panel1 = new JPanel(); //객체 생성
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
button1 = new JButton("button1"); //객체 생성 및 버튼 이름 설정
button2 = new JButton("button2");
button3 = new JButton("button3");
button4 = new JButton("button4");
}
private void setIninLayout() {
this.setVisible(true); //true값을 넣어주지 않으면(false를 넣으면) 실행시켜도 창이 뜨지 않음
this.setLayout(new BorderLayout()); //BorderLayout 객체 생성
this.add(panel1, BorderLayout.NORTH); //창에 panel추가 및 위치 설정
this.add(panel2, BorderLayout.SOUTH);
this.add(panel3, BorderLayout.WEST);
this.add(panel4, BorderLayout.EAST);
panel1.setBackground(Color.CYAN); //panel 색상 설정
panel2.setBackground(Color.lightGray);
panel3.setBackground(Color.GREEN);
panel4.setBackground(Color.YELLOW);
panel1.add(button1); //창에 버튼 추가
panel2.add(button2);
panel3.add(button3);
panel4.add(button4);
}
}
/////////////////////구분선//////////////////////
public class Panel {
public static void main(String[] args) {
new MyPaner(); //이 코드가 있어야 실행 시 창이 뜸
}
}
코드의 큰 틀은 "JButton 만들기 + 클릭 이벤트" 글에 설명해뒀고, 더 필요한 부분은 각 코드에 주석을 달아 설명했습니다.
원래는 panel을 동서남북으로 위치시키고, 각각의 panel에 button을 CENTER에 추가하려 했지만,
setBounds와 setLocaation을 사용해도 button3, button4 2개가 CENTER에 위치하지 않네요...
더 찾아보고 공부해서 완성시켜 보겠습니다!
감사합니다!
2021.07.15
'JAVA > GUI' 카테고리의 다른 글
[자바] 콜백(CallBack) - JFrame (0) | 2021.07.19 |
---|---|
[자바] JFrame 이미지 추가하기 - 슈퍼마리오(1) (0) | 2021.07.17 |
[자바] KeyListener (0) | 2021.07.15 |
[자바] JButton 만들기 + 클릭 이벤트 (0) | 2021.07.14 |
[자바] Login 화면 구성하기 (0) | 2021.07.13 |