要设置一个JFrame按钮来打开另一个JFrame并在第二个JFrame关闭后接收信息,可以按照以下步骤进行:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainFrame extends JFrame {
private JButton openButton;
public MainFrame() {
setTitle("Main Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
openButton = new JButton("Open Second Frame");
openButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SecondFrame secondFrame = new SecondFrame();
secondFrame.setVisible(true);
}
});
getContentPane().add(openButton);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MainFrame mainFrame = new MainFrame();
mainFrame.setVisible(true);
}
});
}
}
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class SecondFrame extends JFrame {
private JLabel messageLabel;
public SecondFrame() {
setTitle("Second Frame");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
messageLabel = new JLabel("This is the second frame.");
getContentPane().add(messageLabel);
pack();
setLocationRelativeTo(null);
// 监听窗口关闭事件
addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// 向MainFrame发送信息
MainFrame.receiveMessage("Message from Second Frame");
}
});
}
}
public class MainFrame extends JFrame {
// ...
// 接收来自SecondFrame的信息
public static void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
// ...
}
这样,当在MainFrame点击按钮打开SecondFrame,并在SecondFrame关闭时,MainFrame就会接收到来自SecondFrame的信息,并显示在控制台上。
请注意,以上代码仅为示例,可能需要根据实际需求进行修改和完善。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云