Newer
Older
ASS2021Java / src / SecondGUI.java
@Motoki Miura Motoki Miura on 19 Oct 2021 1 KB コメント追加
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import java.awt.Dimension;
public class SecondGUI extends JFrame {
    public static JFrame rootjf;
    public static void main(String[] args){
        // JFrameを継承したクラスのインスタンスをつくる。
        // つくっただけで、変数に入れていない。でも画面は表示される。
        new SecondGUI();
    }
    public SecondGUI(){
        super("SecondGUI");
        setSize(300,200);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel northP = new JPanel();
        getContentPane().add(northP, BorderLayout.NORTH);
        getContentPane().add(new JButton("CENTER") );
        northP.add(new ResizeButton("label", 200, 100));
        northP.add(new ResizeButton("label", 200, 100));
        pack();
        SecondGUI.rootjf = this;
    }
}

// interface ActionListener {
//     public void actionPerformed(ActionEvent e);
// }

class ResizeButton extends JButton implements ActionListener {
    private int width, height;
    ResizeButton(String label, int w, int h){
        super(label);
        width = w;
        height = h;
        addActionListener(this);
    }
    public Dimension getPreferredSize(){
        return new Dimension(width, height);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        width += 30;
        height += 10;
        SecondGUI.rootjf.pack();

    }

}