Newer
Older
ASS2021Java / src / FirstGUI.java
@Motoki Miura Motoki Miura on 12 Oct 2021 1 KB 4th lec
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;

class MyThread extends Thread {
    int num;
    public void run(){
        while(true){
            System.out.println(num);
            num++;
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

class SelfActionJButton extends JButton implements ActionListener, Runnable {
    int num;
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Button [" + e.getActionCommand() + "] was pressed.");
        // new MyThread().start();
        new Thread(this).start();
        FirstGUI.rootjf.setTitle("Button was pressed");
    }
    public SelfActionJButton(String label){
        super(label);
        this.addActionListener(this);// new FirstGUI());
    }
    @Override
    public void run() {
        while(true){
            System.out.println("["+num+"]");
            num++;
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class FirstGUI /*implements ActionListener*/ {

    public static JFrame rootjf; //アプリケーションのメインのウィンドウ
    public static void main(String[] args) {
        SelfActionJButton jb = new SelfActionJButton("ボタン");
        // ActionListener( );

        JFrame jf = new JFrame("FirstGUI");
        jf.getContentPane().add(jb);
        // jf.setSize(300, 300);
        jf.pack();

        jf.setVisible(true);
        jf.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        rootjf = jf;

    }
}