import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyButton extends JButton {
public MyButton(String label) {
super(label);
}
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
return new Dimension((int)(size.getWidth()*2), (int)(size.getHeight()*2) );
}
public void paintComponent(java.awt.Graphics g) {
super.paintComponent(g);
g.drawString("MyButton", 10, 10);
g.drawLine(10, 10, 100, 100);
}
}
public class FirstGUI extends JPanel implements ActionListener, WindowListener, Runnable {
JFrame frame;
JButton button1, button2;
int seconds = 0; //秒数
public static void main(String[] args) {
new FirstGUI();
}
public FirstGUI(){
frame = new JFrame("FirstGUI");
frame.setSize(300,200);
frame.getContentPane().add(this);
this.add(button1 = new JButton("Button"));
this.add(button2 = new JButton("Button2"));
MyButton button3;
this.add(button3 = new MyButton("Button3"));
button1.addActionListener(this);
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(e.getActionCommand()
);
}
});
button2.addActionListener(e -> { System.out.println(e.getActionCommand()); } );
frame.addWindowListener(this);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
frame.pack();
System.out.println(e.getActionCommand());
Thread thread = new Thread(this);
thread.start();
}
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
java.awt.Toolkit.getDefaultToolkit().beep();
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
@Override
public void run() {
for(int i=0; i< 10;i++){
System.out.println(i+" sec");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}