问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 程序无法关闭窗口!用dispose()无效

发布网友 发布时间:2022-05-05 06:40

我来回答

2个回答

热心网友 时间:2023-10-13 11:12

改成这样,你看看:

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.xml.ws.Dispatch;

public class Progress_bar extends JFrame implements ActionListener
{
private static final long serialVersionUID = -2543187469376323631L;
//ActionListener ,ChangeListener是 2个实现进度条的 接口
private JPanel panel;
private Timer timer;
private JButton btn;
private JProgressBar pgb;
private JLabel label;
JFrame frame;
public void init()
{
panel = new JPanel();
btn = new JButton("start");
btn.addActionListener(this);
panel.add (btn,BorderLayout.CENTER);

timer = new Timer(1,this);//控制进度条速度

pgb = new JProgressBar();//可视化进度条(显示进度条)
pgb.setOrientation (JProgressBar.HORIZONTAL);
pgb.setMaximum (100);//显示已完成多少(到多少)
pgb.setMinimum (0);//显示已完成多少(从多少开始)
pgb.setValue (0);//将进度条的当前值设置为 0
pgb.setStringPainted (true);//设置 stringPainted 属性的值,
//该属性确定进度条是否应该呈现进度字符串。
pgb.setPreferredSize (new Dimension(400,80));
//Dimension 类封装单个对象中组件的宽度和高度(好像没什么 用)

label = new JLabel("正在启动QQ...");//创建一个标示(用于显示进度文字的显示)

frame = new JFrame("test");
frame.add (panel,BorderLayout.SOUTH);
frame.add (pgb,BorderLayout.CENTER);
frame.add (label,BorderLayout.NORTH);
frame.setBounds(450, 300, 350, 100);//设置窗体长和宽
frame.setVisible (true);//显示窗体
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//关闭有效
}
public static void main(String args[])
{
new Progress_bar().init (); //执行 程序
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource ()==btn)
{
timer.start ();

}
if(e.getSource ()==timer)
{

int value = pgb.getValue () ;
if(value<100)
{
value++;
pgb.setValue (value);
}
if(value ==100)
{

timer.stop ();
pgb.setValue (0);
frame.setVisible(false);
frame.dispose();
}

}
}

}

热心网友 时间:2023-10-13 11:12

一楼的应该是有效的。但没有解决本质问题。
问题出在你的GUI程序架构上。你的程序主类已经是JFrame子类了,那么它的实例就是一个JFrame,为什么还要再new一个JFrame作为程序界面呢?在main函数中,new你的主类,就是new了Frame,直接用主类此实例做程序界面即可!
所以,init中的代码应该是这样:
//JFrame frame = new JFrame("test");这行不要了
add (panel,BorderLayout.SOUTH);
add (pgb,BorderLayout.CENTER);
add (label,BorderLayout.NORTH);
setBounds(450, 300, 350, 100);//设置窗体长和宽
setVisible (true);//显示窗体
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//关闭有效
轻松搞定!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
15份的摘抄,要短的我是写作业的,差不多一份要一张纸 肯定会给高分_百度... 补牙前怎么样杀神经? ...我妈让我把牙堵上,想知道是怎么堵?要是杀神经,具体流程是什么样的... 汽车电瓶断电开关断正极还是负极 汽车电瓶断电开关断正极吗 为什么汽车电瓶断电后要断开负极 亳州市教师资格证考哪些科目 请问在观澜坐哪路公交车去深圳大学 陈旧隙腔性脑梗塞能喝酒吗?要喝的话多少为好?谢谢……! 男女朋友分手,怎样消除房产证上女方的名字 ...加了女方的名字 现在女方要提出分手 这房子该怎么处理? 台式机!无线网与内网不能同时使用吗? java中可以通过什么方式获取一个窗口JFrame是否被dispose(); java frame 刷新问题,一个跳出的窗口,用dispose()关闭后,下次运行会多次运行 求一张超清的衡水中学的英语字体范文 (Java)dispose()函数有时关闭不了窗口 求衡水体英文书写指导规范? java中要关闭窗口不退出程序 但用this.dispose();为什么没有反应啊????急!!!! 一般是因为哪些原因,会导致婴幼儿出现腹泻的情况? java 用dispose()关闭窗口后是否会继续占用内存 java中的清理问题 s.dispose(); 这有什么用??? java 中Shape dispose()方法的问题 孩子腹泻 java dispose不起作用 宝宝大便次数过多,且呈蛋花状就是腹泻,新生儿腹泻症状有哪些? java中dispose()如何使用 java dispose()方法为什么会报错 请java高手帮忙解答: dispose()与setVisible()的问题 java事件内部实现时没有this.dispose()方法?谢谢了,大神帮忙啊 java中dispose()这个函数是干什么用的 脸大适合什么发型求大神帮助 为什么台式机用无线网卡用WIFI的时候,插上网线本地连接的时候,网速变得很慢?不能同时用本地连接和无线网 dispose() java 问题 本地和wifi不能同时连接,本地连接上时,wifi就不行,wifi连接上时本地就不行 java中System.exit(0)和Window.dispose()的区别 台式机 可以同时连接WIFI和本地连接吗? 台式机外接了USB无线网卡,为什么不能内网外网同时使用 为什么电脑网络和wifi网络无法同时使用 wifi与本地连接同时使用 怎么用无线路由同时连接台式电脑(有线连接)和WIFI同时上网啊 为什么电脑和wifi不能同时使用 电脑同时连接本地连接和wifi先用哪个? 平安银行车主专享贷款通过率高吗 《楚乔传》楚乔赵丽颖到底是什么身世 楚乔传杜平安真实身份是什么 杜平安结局是什么 楚乔传身份是什么:兰儿是谁结局怎么死的 楚乔传楚乔的身份是什么 楚乔传宇文玥什么时候知道楚乔身份的 楚乔身世 楚乔传小说宇文玥到底什么身世 单反相机快门为什么有时按不下去?我用的是尼康d7000 楚乔传洛河之女是谁 楚乔的母亲洛河到底是什么身份