국비 19일차_1

강지수·2024년 1월 10일
0

국비교육

목록 보기
36/97
  • 스윙 세미프로젝트 진행 -

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 까지 만들 예정.


profile
개발자 준비의 준비준비중..

0개의 댓글