基本的に、私がやりたかったJFrame
のは、同じクラスのボタンでを閉じることです。私は2つのクラスClass1
とを持っていClass2
ます。の[データの追加]ボタンをクリックするClass1
と開きClass2
(ダイアログボックスのようなもの)、[Class2
完了]ボタンをクリックすると閉じます。
-------------------------------クラス1------------------ -------------
public class Class1 extends JFrame{
private JPanel contentPane;
public Class1(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 355, 251);
contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
contentPane.setForeground(Color.BLACK);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//Add labels and other relevant content here
JButton addData = new JButton("Add Data");
addData.setBounds(32, 135, 130, 23);
contentPane.add(addData);
addData.addActionListener(new addDataActionListener());
}
class addDataActionListener implements ActionListener{
public void actionPerformed(ActionEvent arg5) {
Class2 co = new Class2();
co.setVisible(true);
//opening the Class2 JFrame
}
}
}
-------------------------------クラス2------------------ -------------
public class Class2 extends JFrame {
private JPanel contentPane;
public Class2(){
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setBounds(100, 100, 415, 238);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//Add labels and other relevant content here
JButton done = new JButton("Done");
done.setBounds(206, 164, 89, 23);
contentPane.add(done);
done.addActionListener(new doneActionListener());
}
class doneActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
//add stuff that needs to be done
Class2 co2 = new Class2();
co2.setVisible(false);
co2.dispose();
}
ただし、[完了]ボタンをクリックすると、他のすべてのアクションが実行されますが、Class2のフレームは閉じられません。誰かがそれがどのように行われたかを私に知らせてくれれば幸いです。
追伸 私はJavaを初めて使用します(約4か月前に開始しました)。はっきりしていなくてごめんなさい。前もって感謝します :)