본문 바로가기

Learning/JAVA

텍스트필드에 단을 입력하고 구구단 버튼을 누르면 TextArea에 구구단 출력하기

  • 텍스트필드에 단을 쓰고 구구단 버튼을 누르면 TextArea에 구구단 출력 (JGugudan)

    • JTextField, JButton, JTextArea메소드로 객체 생성, Frame상속받고 액션을 위해 ActionListener implements 시켜준다.

    • JTextField에 있는 문자를 받아서 정수형으로 반환한다.

    • 단을 가져와서 for문을 이용하여 출력한다.

    • 출력할때에는 JTextArea의 객체에 append()메소드를 이용한다.

    • 숫자가 아닌걸 parseInt하면 오류가 발생한다. 그때 오류 메시지를 써준다.

      • try-catch문으로 처리해주고 catch()메소드의 인자로 NumberFormatException n을 써준다. 

      • JTextField의 객체 tf1에 setText()메소드를 이용하여 오류 메시지를 쓴다.

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
52
package guiTest;
 
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
public class JGugudan extends JFrame implements ActionListener{
    JTextField tf1;
    JTextArea ta1;
    int gugudan;
    int dan;
 
    public JGugudan() {
        setTitle("구구단");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        tf1=new JTextField(10);
        JButton b1=new JButton("구구단");
        ta1=new JTextArea(10,20);
        setLayout(new FlowLayout());
        add(tf1);
        add(b1);
        add(ta1);
        b1.addActionListener(this);
        tf1.addActionListener(this); //엔터를 누르면 버튼이 실행
        setSize(400,300);
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new JGugudan();
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        ta1.setText(""); //그 전에 썼던 글자를 지우기 위해.
        //TextField에 있는 문자를 받아와서 정수형으로 반환
        //단을 가져와서 for문 이용
        try {
            //숫자가 아닌 걸 parseInt하면 오류발생. 그때 오류 메시지 써주기
            int dan = Integer.parseInt(tf1.getText()); 
            for(int i=1;i<10;i++) {
                ta1.append(dan+"*"+i+"="+dan*i+"\n");
            }
        } catch (NumberFormatException n) {
            tf1.setText("숫자를 입력하세요.");
        }
    }
}