2교시엔 세미프로젝트 관련 내용 보충+예시 등등 설명할 예정
현재 진행 상황
파일트리
메인 실행할 Mission.java
메인 화면 MainFrame.java
결제까지 완료한 후의 최종 화면 ByeFrame.java
4초의 시간이 지나면 메인화면으로 전환되게 구현.
탭 전환 사용 예시
package com.tech.tab1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class JTab01 extends JFrame implements ActionListener{
JTabbedPane t=new JTabbedPane();
JPanel p1=new JPanel();
JButton btn1=new JButton("탭연습1");
JButton btn2=new JButton("탭연습2");
JButton btn3=new JButton("탭연습3");
JTextField txt_1=new JTextField("기본값",25);
public JTab01() {
setTitle("use_tab");
setDefaultCloseOperation(EXIT_ON_CLOSE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
p1.add(btn1);
p1.add(btn2);
p1.add(btn3);
p1.add(txt_1);
t.add("기록일지",new JTextArea());
t.add("상태일지",p1);
t.add("기록일지3",new JTextArea());
t.add("기록일지4",new JTextArea());
add(t);
setSize(450,350);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn1) {
t.setSelectedIndex(0);
} else if (e.getSource()==btn2) {
t.setSelectedIndex(1);
} else if (e.getSource()==btn3) {
t.setSelectedIndex(2);
}
}
public static void main(String[] args) {
new JTab01();
}
}
결과
버튼을 누르면 탭1,2,3 으로 전환됨.
강사님의 코드
package com.tech.tab2;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
public class MainClass implements ActionListener{
JFrame f;
ViewA a;
ViewB b;
ViewC c;
ViewD d;
ViewHome home;
static JTabbedPane pane;
public MainClass() {
f=new JFrame("홍길동프로젝트");
f.setLayout(new BorderLayout());
a=new ViewA();
b=new ViewB();
c=new ViewC();
d=new ViewD();
home=new ViewHome();
//버튼에 리스너부착
a.btn1.addActionListener(this);
a.cbox.addActionListener(this);
d.cbox.addActionListener(this);
home.btnhome.addActionListener(this);
f.add(a,"North");
f.add(home,"South");
pane=new JTabbedPane();
pane.add("재고관리",a);
pane.add("매장관리",b);
pane.add("매출관리",c);
pane.add("직원관리",d);
f.add(pane,BorderLayout.CENTER);
f.setSize(500,400);
f.setVisible(true);
}
int price=0;
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("ssssss");
if (e.getSource()==a.cbox) {
// System.out.println("a.cbox");
if(a.cbox.getSelectedItem()=="apple1") {
price+=10;
}else if(a.cbox.getSelectedItem()=="apple2") {
price+=20;
}else if(a.cbox.getSelectedItem()=="apple3") {
price+=30;
}
}else if(e.getSource()==a.btn1) {
b.field.setText("[사과가격] : "+price);
pane.setSelectedIndex(1);//탭전환
}else if(e.getSource()==home.btnhome) {
pane.setSelectedIndex(0);//탭전환
}else if(e.getSource()==d.cbox) {
if(d.cbox.getSelectedItem()=="banana1") {
price+=10000;
}else if(d.cbox.getSelectedItem()=="banana2") {
price+=20000;
}else if(d.cbox.getSelectedItem()=="banana3") {
price+=30000;
}
c.fieldc.setText("[받아온 가격] : "+price);
pane.setSelectedIndex(2);//탭전환
}
}
public static void main(String[] args) {
new MainClass();
}
}
MainClass.java
package com.tech.tab2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class ViewA extends JPanel{
JButton btn1,btn2,btn3;
JComboBox cbox;
JTextArea ta;
public ViewA() {
setLayout(new BorderLayout());
setBackground(Color.yellow);
btn1=new JButton("btn1");
btn2=new JButton("btn2");
btn3=new JButton("btn3");
JPanel p1=new JPanel();
p1.add(btn1);
p1.add(btn2);
p1.add(btn3);
JPanel p2=new JPanel();
String[] fruits= {"apple1","apple2","apple3"};
cbox=new JComboBox(fruits);
p2.add(cbox);
p2.setLayout(new GridLayout(0,1));
p2.add(ta=new JTextArea());
add(p1,"North");
add(p2,"Center");
}
}
ViewA.java
package com.tech.tab2;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ViewB extends JPanel{
JButton btn1,btn2,btn3;
JTextField field;
public ViewB() {
setBackground(new Color(255,100,50));
btn1=new JButton("btn1");
btn2=new JButton("btn2");
btn3=new JButton("btn3");
field=new JTextField(30);
add(btn1);
add(btn2);
add(btn3);
add(field);
}
}
ViewB.java
package com.tech.tab2;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ViewC extends JPanel{
JButton btn1,btn2,btn3;
JTextField fieldc;
public ViewC() {
setBackground(new Color(255,100,50));
btn1=new JButton("btn1");
btn2=new JButton("btn2");
btn3=new JButton("btn3");
fieldc=new JTextField(30);
add(btn1);
add(btn2);
add(btn3);
add(fieldc);
}
}
ViewC.java
package com.tech.tab2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class ViewD extends JPanel{
JButton btn1,btn2,btn3;
JComboBox cbox;
JTextArea ta;
public ViewD() {
setLayout(new BorderLayout());
setBackground(Color.yellow);
btn1=new JButton("btn1");
btn2=new JButton("btn2");
btn3=new JButton("btn3");
JPanel p1=new JPanel();
p1.add(btn1);
p1.add(btn2);
p1.add(btn3);
JPanel p2=new JPanel();
String[] fruits2= {"banana1","banana2","banana3"};
cbox=new JComboBox(fruits2);
p2.add(cbox);
p2.setLayout(new GridLayout(0,1));
p2.add(ta=new JTextArea());
add(p1,"North");
add(p2,"Center");
}
}
ViewD.java
package com.tech.tab2;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JPanel;
public class ViewHome extends JPanel{
JButton btnhome;
public ViewHome() {
setBackground(Color.LIGHT_GRAY);
btnhome=new JButton("btnhome");
add(btnhome);
}
}
ViewHome.java
강사님의 코드
package com.tech.tab3;
public class Main {
public static void main(String[] args) {
new LoginScreen();
}
}
Main.java
package com.tech.tab3;
import java.sql.Connection;
import javax.swing.JFrame;
public class JoinScreen extends JFrame {
public JoinScreen() {
setTitle("회원관리 화면");
setBounds(200, 200, 250, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public Connection makeConnection() {
Connection con=null;
return con;
}
}
JoinScreen.java
package com.tech.tab3;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginScreen extends JFrame{
JTextField jtf1=null;
public LoginScreen() {
setTitle("제품관리 시스템");
JPanel title = new JPanel();
JLabel login = new JLabel("로그인 화면");
login.setForeground(new Color(5, 0, 153));
login.setFont(new Font("고딕체", Font.BOLD, 25));
title.add(login);
JPanel jp1 = new JPanel();
jp1.setLayout(new GridLayout(3, 2));
JPanel idPanel =
new JPanel(new FlowLayout(FlowLayout.RIGHT));
JPanel idPanel2 =
new JPanel(new FlowLayout(FlowLayout.LEFT));
jtf1 = new JTextField(10);
jp1.add(idPanel); jp1.add(idPanel2);
JLabel jlb2 = new JLabel("비밀번호 : ", JLabel.CENTER);
JPanel pwdPanel2 =
new JPanel(new FlowLayout(FlowLayout.LEFT));
JPasswordField jtf2 = new JPasswordField(10);
JPanel loginPanel =
new JPanel(new FlowLayout(FlowLayout.RIGHT));
JButton jLogin = new JButton("로그인");
JPanel joinPanel =
new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton join = new JButton("회원가입");
loginPanel.add(jLogin); joinPanel.add(join);
jp1.add(loginPanel); jp1.add(joinPanel);
JPanel jp2 = new JPanel();
jp2.setLayout(new FlowLayout());
jp2.add(jp1);
setLayout(new BorderLayout());
add(title, BorderLayout.NORTH);
add(jp2, BorderLayout.CENTER);
setBounds(200, 200, 300, 250);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
jLogin.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("loginnnnnnn");
String myId=jtf1.getText();
String myPwd=new String(jtf2.getPassword());
//System.out.println(myId+":"+myPwd);
// if (myId.equals("blue1") && myPwd.equals("111")) {
if (true) {
//화면전환
new MainClass();
dispose();
}else {
JOptionPane.showMessageDialog
(null,"아이디 : "+myId+", 비번 : "+myPwd);
}
}
});
join.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new JoinScreen();
}
});
}
}
LoginScreen.java
오전까지의 semi project 진행 상황
package com.tech.semiprj;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TabFrame1 extends JFrame{
public TabFrame1() {
setTitle("키오스크1");
setSize(640,600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container tF1=getContentPane();
tF1.setLayout(null);
JButton homeButton=new JButton();
homeButton.setSize(70,50);
homeButton.setLocation(530,30);
homeButton.setBackground(Color.yellow);
homeButton.setText("Home");
JPanel tF1Panel=new JPanel();
tF1Panel.setSize(640,600);
tF1Panel.setLocation(0,0);
tF1Panel.setBackground(Color.DARK_GRAY);
JPanel tF1Tab1=new JPanel(new GridLayout(0,1));
tF1Tab1.setSize(100,50);
tF1Tab1.setLocation(20,30);
tF1Tab1.setBackground(Color.yellow);
JLabel tF1Lab1=new JLabel("Tab1",JLabel.CENTER);
tF1Tab1.add(tF1Lab1);
JPanel tF1Tab2=new JPanel(new GridLayout(0,1));
tF1Tab2.setSize(100,50);
tF1Tab2.setLocation(140,30);
tF1Tab2.setBackground(Color.yellow);
JLabel tF1Lab2=new JLabel("Tab2",JLabel.CENTER);
tF1Tab2.add(tF1Lab2);
JPanel tF1Tab3=new JPanel(new GridLayout(0,1));
tF1Tab3.setSize(100,50);
tF1Tab3.setLocation(260,30);
tF1Tab3.setBackground(Color.yellow);
JLabel tF1Lab3=new JLabel("Tab3",JLabel.CENTER);
tF1Tab3.add(tF1Lab3);
JPanel tF1Menu=new JPanel(null);
tF1Menu.setSize(580,360);
tF1Menu.setLocation(20,90);
tF1Menu.setBackground(Color.white);
JPanel pan1=new JPanel(new BorderLayout());
pan1.setBackground(Color.gray);
pan1.setBounds(15,10,130,165);
JPanel pan2=new JPanel(new BorderLayout());
pan2.setBackground(Color.gray);
pan2.setSize(100,100);
pan2.setBounds(155,10,130,165);
JPanel pan3=new JPanel(new BorderLayout());
pan3.setBackground(Color.gray);
pan3.setSize(100,100);
pan3.setBounds(295,10,130,165);
JPanel pan4=new JPanel(new BorderLayout());
pan4.setBackground(Color.gray);
pan4.setSize(100,100);
pan4.setBounds(435,10,130,165);
JPanel pan5=new JPanel(new BorderLayout());
pan5.setBackground(Color.gray);
pan5.setSize(100,100);
pan5.setBounds(15,185,130,165);
JPanel pan6=new JPanel(new BorderLayout());
pan6.setBackground(Color.gray);
pan6.setBounds(155,185,130,165);
JPanel pan7=new JPanel(new BorderLayout());
pan7.setBackground(Color.gray);
pan7.setBounds(295,185,130,165);
JPanel pan8=new JPanel(new BorderLayout());
pan8.setBackground(Color.gray);
pan8.setBounds(435,185,130,165);
JLabel tF1menu1=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu2=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu3=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu4=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu5=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu6=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu7=new JLabel("asdf",JLabel.CENTER);
JLabel tF1menu8=new JLabel("asdf",JLabel.CENTER);
JButton tF1menuBtn1=new JButton("▶ 구매 ◀");
tF1menuBtn1.setForeground(Color.black);
tF1menuBtn1.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn1.setBackground(Color.cyan);
JButton tF1menuBtn2=new JButton("▶ 구매 ◀");
tF1menuBtn2.setForeground(Color.black);
tF1menuBtn2.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn2.setBackground(Color.cyan);
JButton tF1menuBtn3=new JButton("▶ 구매 ◀");
tF1menuBtn3.setForeground(Color.black);
tF1menuBtn3.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn3.setBackground(Color.cyan);
JButton tF1menuBtn4=new JButton("▶ 구매 ◀");
tF1menuBtn4.setForeground(Color.black);
tF1menuBtn4.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn4.setBackground(Color.cyan);
JButton tF1menuBtn5=new JButton("▶ 구매 ◀");
tF1menuBtn5.setForeground(Color.black);
tF1menuBtn5.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn5.setBackground(Color.cyan);
JButton tF1menuBtn6=new JButton("▶ 구매 ◀");
tF1menuBtn6.setForeground(Color.black);
tF1menuBtn6.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn6.setBackground(Color.cyan);
JButton tF1menuBtn7=new JButton("▶ 구매 ◀");
tF1menuBtn7.setForeground(Color.black);
tF1menuBtn7.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn7.setBackground(Color.cyan);
JButton tF1menuBtn8=new JButton("▶ 구매 ◀");
tF1menuBtn8.setForeground(Color.black);
tF1menuBtn8.setFont(new Font("Gothic",Font.BOLD,20));
tF1menuBtn8.setBackground(Color.cyan);
pan1.add(tF1menu1);
pan1.add(tF1menuBtn1,BorderLayout.SOUTH);
tF1Menu.add(pan1);
pan2.add(tF1menu2);
pan2.add(tF1menuBtn2,BorderLayout.SOUTH);
tF1Menu.add(pan2);
pan3.add(tF1menu3);
pan3.add(tF1menuBtn3,BorderLayout.SOUTH);
tF1Menu.add(pan3);
pan4.add(tF1menu4);
pan4.add(tF1menuBtn4,BorderLayout.SOUTH);
tF1Menu.add(pan4);
pan5.add(tF1menu5);
pan5.add(tF1menuBtn5,BorderLayout.SOUTH);
tF1Menu.add(pan5);
pan6.add(tF1menu6);
pan6.add(tF1menuBtn6,BorderLayout.SOUTH);
tF1Menu.add(pan6);
pan7.add(tF1menu7);
pan7.add(tF1menuBtn7,BorderLayout.SOUTH);
tF1Menu.add(pan7);
pan8.add(tF1menu8);
pan8.add(tF1menuBtn8,BorderLayout.SOUTH);
tF1Menu.add(pan8);
JPanel tF1ShoppingCart=new JPanel(new BorderLayout());
tF1ShoppingCart.setSize(310,90);
tF1ShoppingCart.setLocation(20,460);
tF1ShoppingCart.setBackground(Color.LIGHT_GRAY);
JLabel tF1SCLabel=new JLabel(" ☞ 담은 상품");
tF1SCLabel.setFont(new Font("Gothic",Font.BOLD,20));
tF1ShoppingCart.add(tF1SCLabel,"North");
JTextField SCPrice=new JTextField("");
SCPrice.setFont(new Font("Gothic",Font.BOLD,20));
tF1ShoppingCart.add(SCPrice,"Center");
JPanel tF1Price=new JPanel(new BorderLayout());
tF1Price.setSize(260,90);
tF1Price.setLocation(340,460);
tF1Price.setBackground(Color.pink);
JLabel tF1PrcLabel=new JLabel(" ▼ 총액");
tF1PrcLabel.setFont(new Font("Gothic",Font.BOLD,20));
tF1Price.add(tF1PrcLabel,"North");
JTextField Price=new JTextField("");
Price.setFont(new Font("Gothic",Font.BOLD,20));
tF1Price.add(Price,"Center");
JButton tF1paybtn=new JButton("결제");
tF1paybtn.setFont(new Font("Gothic",Font.BOLD,30));
tF1paybtn.setForeground(Color.white);
tF1paybtn.setBackground(Color.DARK_GRAY);
tF1Price.add(tF1paybtn,"East");
tF1.add(homeButton);
tF1.add(tF1Tab1);
tF1.add(tF1Tab2);
tF1.add(tF1Tab3);
tF1.add(tF1Menu);
tF1.add(tF1ShoppingCart);
tF1.add(tF1Price);
tF1.add(tF1Panel);
setVisible(true);
}
public static void main(String[] args) {
new TabFrame1();
}
}
TabFrame1.java
얼추 디자인적으로 비슷하게 만드는 중.
오후엔 코드 압축을 좀 시키고, TabFrame2,3 을 만들 예정.
그 후에 TabFrame1 에 기능적인 부분을 추가하고, 2,3 까지 만들 예정.