Java 如何使用选项框中的按钮操作事件关闭Joptionpane showOptionDialog

Java 如何使用选项框中的按钮操作事件关闭Joptionpane showOptionDialog,java,Java,我在joption窗格中创建了自己的按钮,因为我需要为按钮上色并禁用其中一个按钮以实现我的功能。当我单击其他已启用的按钮时,joption窗格不会关闭,在此我需要单击对话框的交叉按钮以关闭此按钮 有人能告诉我如何在按钮操作事件时关闭Joption窗格吗 JFrame frame = new JFrame(); JButton jb = new JButton(" Yes "); jb.setBackground(Color.RED); jb.set

我在joption窗格中创建了自己的按钮,因为我需要为按钮上色并禁用其中一个按钮以实现我的功能。当我单击其他已启用的按钮时,joption窗格不会关闭,在此我需要单击对话框的交叉按钮以关闭此按钮

有人能告诉我如何在按钮操作事件时关闭Joption窗格吗

            JFrame frame = new JFrame();
    JButton jb = new JButton(" Yes ");
    jb.setBackground(Color.RED);
    jb.setEnabled(false);
            JButton jb1 = new JButton(" No ");

           jb1.addActionListener(new ActionListener() 
             {
        public void actionPerformed(ActionEvent e) 
                   {

            System.out.println("No action");
        }
    });

    Object[] options = { jb, jb1 };
    JTextArea area = new JTextArea(" *Note : some message !");
    area.setForeground(Color.red);
    int n = JOptionPane.showOptionDialog(frame, area, " Alert ", JOptionPane.YES_NO_OPTION,
            JOptionPane.INFORMATION_MESSAGE, null,options,options[0]);

单击时,无需关闭按钮选项窗格对话框。

在侦听器中,您可以执行以下操作:

jb1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Window w = SwingUtilities.getWindowAncestor(jb1);
        w.setVisible(false);
    }
}

太好了@西蒙尼感谢你的帮助,它如预期般工作。