step 1
1. gui 패널에 버튼을 나열해준다
<작업파일>
<결과물>
- Appmain.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package com.mijin.shopping.main;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AppMain extends JFrame {
JPanel p_north;
String[] menu_title= {"상품관리","회원관리","주문관리","고객센터","Login","환경설정"};
JButton[] bt_menu=new JButton[menu_title.length];
public AppMain() {
//생성
p_north=new JPanel();
for (int i = 0; i < bt_menu.length; i++) {
bt_menu[i]=new JButton(menu_title[i]);
}
//스타일
//조립
for (int i = 0; i < bt_menu.length; i++) {
p_north.add(bt_menu[i]);
}
add(p_north, BorderLayout.NORTH);
//보여주기
setBounds(300, 100, 1000, 700);
setVisible(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new AppMain();
}
}
|
cs |
step 2
1. 각 버튼 클릭시 나타나야하는 페이지를 panel로 부착한다.
- 각 패널을 전부 띄워놓은 상태로 setvisible 의 상태를 true/false로 제어하여 화면을 보여줄 예정
- 패널 부착은 공존 해야 하기 때문에 BorderLayout 이 아닌 FlowLayout 으로 부착해야한다.
2. 각 버튼마다 나타날 패널을 클래스로 분리하여 관리한다
- 각 클래스는 Jpanel을 상속받은 Pages 라는 클래스를 상속받는다.
<작업파일>
<결과물>
- AppMain.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package com.mijin.shopping.main;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AppMain extends JFrame {
JPanel p_north;
String[] menu_title= {"상품관리","회원관리","주문관리","고객센터","Login","환경설정"};
JButton[] bt_menu=new JButton[menu_title.length];
public AppMain() {
//생성
p_north=new JPanel();
for (int i = 0; i < bt_menu.length; i++) {
bt_menu[i]=new JButton(menu_title[i]);
}
//스타일
//조립
for (int i = 0; i < bt_menu.length; i++) {
p_north.add(bt_menu[i]);
}
add(p_north, BorderLayout.NORTH);
//보여주기
setBounds(300, 100, 1000, 700);
setVisible(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new AppMain();
}
}
|
cs |
- Page.java
1
2
3
4
5
6
7
8
9
10
11
12
|
package com.mijin.shopping.main;
import java.awt.Dimension;
import javax.swing.JPanel;
public class Page extends JPanel{
public Page() {
setPreferredSize(new Dimension(150, 500));
}
}
|
cs |
- MemberMain.java
외 클래스들은 동일한 코드를 가지고 있다.
1
2
3
4
5
6
7
8
9
10
11
12
|
package com.mijin.shopping.member;
import java.awt.Color;
import com.mijin.shopping.main.Page;
public class MemberMain extends Page{
public MemberMain() {
setBackground(Color.YELLOW);
}
}
|
cs |
step3
1. 각 버튼을 클릭하였을때 선택한 패널이 나오도록 한다.
- 여기서 각 버튼에 id를 부여하여야 하는데 이때 id부여를 우한 custom 버튼 클래스가 필요하다.
- AppMain에 리스너를 부착하여 각 아이디에 해당하는 버튼을 눌렀을떄 그 페이지를 보이게한다.
<작업 결과물>
- AppMain.java 변경/추가 코드
- CustomButton.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package com.mijin.shopping.main;
import javax.swing.JButton;
public class CustomButton extends JButton{
private int id;
public CustomButton(String title) {
super(title); //부모의 생성자는 물려받지 않으므로 부모의 생성자를 자식이 호출해야 함
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
|
cs |
- Page.java 변경/추가 코드
반응형
'개발 > java' 카테고리의 다른 글
java 쇼핑몰 GUI(4) (0) | 2021.05.25 |
---|---|
java 쇼핑몰 GUI(3) (0) | 2021.05.24 |
java 쇼핑몰 GUI(2) (0) | 2021.05.24 |
java Editplus / Eclipse에 .jar 추가 방법 (0) | 2021.05.23 |
java 갤러리 (0) | 2021.05.17 |
댓글