永发信息网

java新手的一个问题 关于界面开发的时候windowlistener

答案:4  悬赏:0  手机版
解决时间 2021-02-22 15:37
  • 提问者网友:你独家记忆
  • 2021-02-22 08:25
package life;
import java.io.*;
import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class practice
{
public static void main(String[] args)
{
JFrame jf=new JFrame("windowlistener");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(600, 600);
jf.setLocation(100, 100);
JPanel jp=new JPanel();
jf.setContentPane(jp);
WindowListener wl=new windowhandle();
jf.addWindowListener(wl);
jf.setVisible(true);

}

}
class windowhandle extends WindowAdapter//适配器的作用就是只实现借口中的若干个方法 其他的自动成为空
{
public void WindowClosing(WindowEvent e)
{
System.out.println("正在尝试关闭系统哦");
JDialog d=new JDialog();
d.setSize(100,100);
d.setLocation(0, 0);
JButton jb1=new JButton("关闭");
JButton jb2=new JButton("取消");
JPanel j=new JPanel();
d.setContentPane(j);
j.add(new Label("你确定要关闭?"));
j.add(jb1);
j.add(jb2);
d.setVisible(true);
j.setVisible(true);
}
}
为什么一点效果都木有~~
希望能够按关闭的时候弹出一个你确认关闭吗?
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-02-22 09:24
改成这样
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class practice{

public static void main(String[] args){
JFrame jf=new JFrame("windowlistener");
jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jf.setSize(600, 600);
jf.setLocation(100, 100);
JPanel jp=new JPanel();
jf.setContentPane(jp);
windowhandle wl=new windowhandle();
jf.addWindowListener(wl);
jf.setVisible(true);
}
}
class windowhandle extends WindowAdapter{
public void windowClosing(WindowEvent e){
int select=JOptionPane.showConfirmDialog(null, "你确定要关闭?","正在尝试关闭系统哦",JOptionPane.YES_NO_OPTION);
if(select==JOptionPane.YES_OPTION) {
System.exit(0);
}
return;
}
}
全部回答
  • 1楼网友:末日狂欢
  • 2021-02-22 12:33
....
  • 2楼网友:一叶十三刺
  • 2021-02-22 11:08
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);你已经设置了默认的关闭窗口的方式 package life; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class practice { public static void main(String[] args) { JFrame jf=new JFrame("windowlistener"); //jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默认关闭frame jf.setSize(600, 600); jf.setLocation(100, 100); JPanel jp=new JPanel(); jf.setContentPane(jp); WindowListener wl=new windowhandle(jf); jf.addWindowListener(wl); jf.setVisible(true); } } class windowhandle extends WindowAdapter//适配器的作用就是只实现借口中的若干个方法 其他的自动成为空 implements ActionListener { private JButton jb1=new JButton("关闭"); private JButton jb2=new JButton("取消"); private JDialog d=new JDialog(); private JFrame jf=new JFrame(); public windowhandle(JFrame jf){ this.jf=jf; } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.out.println("正在尝试关闭系统哦"); d.setSize(300,100); d.setLocation(0, 0); jb1.addActionListener(this); jb2.addActionListener(this); JPanel j=new JPanel(); d.setContentPane(j); j.add(new Label("你确定要关闭?")); j.add(jb1); j.add(jb2); d.setVisible(true); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if(arg0.getSource()==jb1){ System.exit(0); }else if(arg0.getSource()==jb2){ jf.setVisible(true); d.setVisible(false); } } }
  • 3楼网友:鱼忧
  • 2021-02-22 10:12
//frame 上设置panel,panel上可以再装panel jf.setContentPane(pane); //panel上设置button JPanel pane = new JPanel(new FlowLayout());//FlowLayout为布局 JButton start =new JButton("asd"); pane.add(start); //button 调用监听 strat.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int val = JOptionPane.showConfirmDialog(这个button的JFRAME , "确定关闭吗"); if(val==JOptionPane.YES_OPTION){ System.exit(0); } } });
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯