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 |