Develop/JAVA

0609 JAVA 열여섯번째...

포페PostFace 2022. 6. 10. 17:24

JFrame

Frame과 상당히 유사하다.
임포트가 자동으로 가능하다.

Vector<Vector<String>> data; 
큰 벡터에 작은 벡터를 넣는 타입.
문자열 타입의 벡터를 모아놓은 벡터 
중첩벡터라고도 한다.

setResizable(false); 
크기변경을 못하게 한다.

대부분 이해하느라 바빠 필기는 작성한 코드의 주석으로 대체합니다... 

더 정진하겠습니다!

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.*;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

class Sub8 extends JFrame{
	Sub8(String title){
		super(title);
		
		
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		
		p1.setBackground(Color.gray);
		p2.setBackground(Color.cyan);
		
		Container contentPane = getContentPane();
		contentPane.add(p1,BorderLayout.CENTER);
		contentPane.add(p2,BorderLayout.SOUTH);
		
		JTextField text1 = new JTextField(5);
		JTextField text2 = new JTextField(5);
		JTextField text3 = new JTextField(5);
		
		p1.add(text1);
		p1.add(new JLabel("+"));
		p1.add(text2);
		p1.add(new JLabel("="));
		p1.add(text3);
		
		JButton btn1 =new JButton("확인");
		JButton btn2 =new JButton("취소");
		
		btn1.addActionListener(new OkButton(text1,text2,text3));
		btn2.addActionListener(new CancleButton(text1,text2,text3));
		
		p2.add(btn1);
		p2.add(btn2);
		
		pack(); //컴포넌트에 딱 맞게 사이즈 설정
		
//		setSize(300,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //창을 닫으면 종료하는 메소드
		setVisible(true);
		
		
	}
	
}

class OkButton implements ActionListener{
	JTextField text1;
	JTextField text2;
	JTextField text3;
	
	OkButton(JTextField text1,JTextField text2,JTextField text3){
		this.text1=text1;
		this.text2=text2;
		this.text3=text3;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
//		System.out.println("확인 클릭함");
		try{
			int num1 =Integer.parseInt(text1.getText());
			int num2 =Integer.parseInt(text2.getText()); //String 타입의 데이터를 int로 변환
			int sum=num1 +num2;
//			text3.setText(sum+"");
			text3.setText(String.valueOf(sum)); //int 타입의 변수를 텍스트로 재전환
		} catch(NumberFormatException e2) {
			JOptionPane.showMessageDialog(null, "숫자만 입력 가능"); //팝업형태로 띄워준다.
			text1.setText(null);
			text2.setText(null);
		}
	}
	
}
class CancleButton implements ActionListener{
	JTextField text1;
	JTextField text2;
	JTextField text3;
	
	CancleButton(JTextField text1,JTextField text2,JTextField text3){
		this.text1=text1;
		this.text2=text2;
		this.text3=text3;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
//		System.out.println("취소 클릭함");
		text1.setText(null);
		text2.setText(null); //창 지우기
		text3.setText(null);
		
	}
	
}
public class Ex12_08_Add {

	public static void main(String[] args) {
		new Sub8("덧셈 프로그램");
	}

}

'Develop > JAVA' 카테고리의 다른 글

0621 JDBC 사용  (0) 2022.06.24
0620 JAVA JDBC를 통한 SQL 연동  (0) 2022.06.20
0607 JAVA 열네번째 공부 정리~  (0) 2022.06.10
0603 JAVA 열세번째  (0) 2022.06.03
0602 JAVA 열두번째~  (0) 2022.06.02