Java - How to add a JOptionPane for Yes and No options

前端 未结 4 797
别跟我提以往
别跟我提以往 2020-12-11 21:16

So, I\'ve read the Java API, but still can\'t seem to make heads or tails about how to do this. And believe me I have tried. I want an ActionListener to cause a message box

相关标签:
4条回答
  • 2020-12-11 21:53

    Try this..

      JOptionPane.showConfirmDialog(null, "Do you", "Message", 
                                    JOptionPane.YES_NO_OPTION);
    

    It will return 0 for Yes and 1 for No

    0 讨论(0)
  • 2020-12-11 21:55
    final JOptionPane optionPane = new JOptionPane(
    "The only way to close this dialog is by\n"
    + "pressing one of the following buttons.\n"
    + "Do you understand?",
    JOptionPane.QUESTION_MESSAGE,
    JOptionPane.YES_NO_OPTION);
    

    enter image description here

    0 讨论(0)
  • 2020-12-11 22:09

    not clear what do you really want to do, maybe

    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");
        private JFrame frame1 = new JFrame();
    
        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(1);
                    }
                }
            };
            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);
    
            frame1.addWindowListener(exitListener);
            frame1.setDefaultCloseOperation(EXIT_ON_CLOSE);
            frame1.setPreferredSize(new Dimension(400, 300));
            frame1.setLocation(500, 100);
            frame1.pack();
            frame1.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);
                JOptionPane.showMessageDialog(null, "Whatever", "Whatever",
                        JOptionPane.ERROR_MESSAGE);
                int confirm1 = JOptionPane.showOptionDialog(frame1,
                        "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(1);
                }
            }
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    ClosingFrame cf = new ClosingFrame();
                }
            });
        }
    }
    
    0 讨论(0)
  • 2020-12-11 22:12

    I think you want to do something like this inside your ActionListener:

    int selectedOption = JOptionPane.showConfirmDialog(null, 
                                      "Do you wanna close the window?", 
                                      "Choose", 
                                      JOptionPane.YES_NO_OPTION); 
    if (selectedOption == JOptionPane.YES_OPTION) {
        window.dispose();
    }
    
    0 讨论(0)
提交回复
热议问题