Cute Apple
본문 바로가기
개발/java

java 쇼핑몰 GUI (1)

by 미댕댕 2021. 5. 23.

 

 

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(3001001000700);
        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(3001001000700);
        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(150500));
    }
}
 
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 변경/추가 코드

jButton을 CustomButton으로 변경

 

리스너 호출

- 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 변경/추가 코드

 

너비를 800으로 변경 /  setVisible 을 false로 하여 버튼 클릭을 하지 않았을떄는 보이지 않게함

 

반응형

'개발 > 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

댓글