Java 从另一个类中处理 JFrame 窗口



A class Main 具有构造 JFrame 的主要方法。类 MainView 具有附加在 JFrame 上的面板和按钮。

我需要做的是通过单击某个按钮来处理 JFrame 窗口。

我已经尝试了从这里找到的各种方法,Stackoverflow。但到目前为止还没有解决方案。

public final class Main {
static JFrame frame = null;
public static void main(String[] args) throws IOException {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            try {
                frame = new MainView("Blackjack 2017");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(650, 450);
            frame.setVisible(true);
        }
    });

}
}

public class MainView extends JFrame implements ActionListener {
private static final long serialVersionUID = 4728244239185625080L;
private Dealer dealer;
private User user;
private ControlPanel controlPanel;
public static Container c;
public MainView() {
}
public MainView(String title) throws IOException {
    super(title);
    dealer = new Dealer();
    user = new User();
    System.out.println(title + " frame made");
    controlPanel = new ControlPanel();
    controlPanel.setControlPanel();
    c = getContentPane();
    c.add(controlPanel);
    controlPanel.getPlayBtn().addActionListener(this);
    controlPanel.getExitBtn().addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("Play")) {
        System.out.println("play clicked");
        c.removeAll();
        c.add(playPanel);
        c.validate();
    } else if (e.getActionCommand().equals("Exit")) {

    }

查看关闭应用程序,了解有关关闭框架(或对话框(的一些基础知识。

您可以只使用 ExitAction 类,这是一个泛型Action,可以添加到任何按钮(或菜单项(,并且就像用户单击了窗口的关闭按钮一样。

该代码的工作原理是将windowClosing事件调度到窗口。因此,它假定您已调用窗口的setDefaultCloseOperation(...)

最新更新