java swing中怎么实现点击jframe的关闭按钮后,弹出提示框?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java swing中怎么实现点击jframe的关闭按钮后,弹出提示框?相关的知识,希望对你有一定的参考价值。

如上图,点击红色关闭按钮,实现弹出下面对话框,提示是否要退出程序?

用到JOptionPane.showConfirmDialog方法,showConfirmDialog 的返回类型是int,定义一个int类型的变量接收返回值,然后根据业务逻辑判断,代码看不懂,可以自行百度搜索或问同事,编程注重思想。

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
 
public class JButtonTest extends JFrame

    public static void main ( String[] args )
    
        JButtonTest b = new JButtonTest ();
        b.addWindowListener (new WindowAdapter ()
        
            @Override
            public void windowClosing ( WindowEvent e )
            
                int exi = JOptionPane.showConfirmDialog (null, "要退出该程序吗?", "友情提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
                if (exi == JOptionPane.YES_OPTION)
                
                    System.exit (0);
                
                else
                
                    return;
                
            
        );
        b.setSize (300, 300);
        b.setLocationRelativeTo (null);
        b.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
        b.setVisible (true);
    
参考技术A

给整个JFrame添加个监视器

        f.addWindowListener(new WindowAdapter()  
            public void windowClosing(WindowEvent we)  
                int ret = JOptionPane.showConfirmDialog(null, "确定不玩了吗?","Attention",JOptionPane.OK_OPTION);
                if(ret==JOptionPane.OK_OPTION)
                    System.exit(0); 
             
        );

本回答被提问者采纳
参考技术B

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class JButtonTest extends JFrame

public static void main ( String[] args )

JButtonTest b = new JButtonTest ();
b.addWindowListener (new WindowAdapter ()

@Override
public void windowClosing ( WindowEvent e )

int exi = JOptionPane.showConfirmDialog (null, "确定不玩了么?", "友情提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (exi == JOptionPane.YES_OPTION)

System.exit (0);

else

return;


);
b.setSize (300, 300);
b.setLocationRelativeTo (null);
b.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
b.setVisible (true);

java swing问题:JFrame根面板不透明且可见,内容面板不透明且可见,层面板透明且可见,

java swing问题:JFrame根面板不透明且可见,内容面板不透明且可见,层面板透明且可见,玻璃面板透明且不可见,我设置了根面板和内容面板透明,应该只显示一个框架啊,为什么还是显示一个面板?

jframe不透明,所以会显示它的框及框内的东西。里面的东西透明,所以不会显示,最后就剩jframe本身了(你看到的面板就是jframe的内容了,是不可能透明的) 参考技术A 你是怎么设置根面板透明的?追问

使用setOpaque()方法

参考技术B 你在搞笑吗追问

JFrame不是由JRootPane组成的吗,我设置以及它的子面板透明,难道不行吗

参考技术C 你的顺序可能有问题,可以详细讨论下?追问

先内容面板setOpaque(false)
然后根面板setOpaque(false)

以上是关于java swing中怎么实现点击jframe的关闭按钮后,弹出提示框?的主要内容,如果未能解决你的问题,请参考以下文章

java swing中怎么自由设置鼠标的样式(小手,十字,等待.....)

怎么用java实现在同一界面点击两个按钮进入两个不同界面

java swing显示图片问题

java swing 编程中,如何实现点击按钮弹出新的窗口???

Eclipse中jframe怎么用属性设背景图片

java如何实现用户在文本框中输入好友昵称,点击查询,根据用户输入匹配好友昵称,结果加载到下拉框中