基本的Java Swing,如何退出和处置您的应用程序/ JFrame

用这样的代码处理JFrame的好方法是什么?我想处理窗口出口和窗口关闭。

我知道我们不应该使用System.exit();

public class JavaCellularAutomataSquare {

public static final String TITLE = "Cellular Automata - Squaring Example";

private int maxWidth = 600;

private int maxHeight = 600;

public void launch() {

final JFrame frame = new JFrame(TITLE);

frame.setLocation(20, 20);

frame.setPreferredSize(new Dimension(maxWidth, maxHeight));

frame.setResizable(false);

frame.setFocusable(true);

final JPanel panel = new JPanel();

panel.setLocation(20, 20);

panel.setVisible(true);

panel.setPreferredSize(new Dimension(maxWidth, maxHeight));

panel.setFocusable(true);

panel.setBackground(Color.white);

// Panel setup, toggle visibility on frame

frame.add(panel);

frame.pack();

frame.setVisible(true);

}

}

回答:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class ClosingFrame extends JFrame {

private JMenuBar MenuBar = new JMenuBar();

private JFrame frame = new JFrame();

private static final long serialVersionUID = 1L;

private JMenu File = new JMenu("File");

private JMenuItem Exit = new JMenuItem("Exit");

public ClosingFrame() {

File.add(Exit);

MenuBar.add(File);

Exit.addActionListener(new ExitListener());

WindowListener exitListener = new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

int confirm = JOptionPane.showOptionDialog(frame,

"Are You Sure to Close this Application?",

"Exit Confirmation", JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE, null, null, null);

if (confirm == JOptionPane.YES_OPTION) {

System.exit(0);

}

}

};

frame.addWindowListener(exitListener);

frame.setDefaultCloseOperation(EXIT_ON_CLOSE);

frame.setJMenuBar(MenuBar);

frame.setPreferredSize(new Dimension(400, 300));

frame.setLocation(100, 100);

frame.pack();

frame.setVisible(true);

}

private class ExitListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

int confirm = JOptionPane.showOptionDialog(frame,

"Are You Sure to Close this Application?",

"Exit Confirmation", JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE, null, null, null);

if (confirm == JOptionPane.YES_OPTION) {

System.exit(0);

}

}

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

ClosingFrame cf = new ClosingFrame();

}

});

}

}

以上是 基本的Java Swing,如何退出和处置您的应用程序/ JFrame 的全部内容, 来源链接: utcz.com/qa/402342.html

回到顶部