Java关于JDialog的问题
正在写一个爬虫程序,然后因为爬取数据需要时间,所以就想在爬取的时候增加一个进度条来表示正在爬取。于是创建了一个Probar类,当开始爬取数据时,new Probar()来显示进度条,表示正在爬取数据,同时显示消息日志来说明哪些数据爬到了,哪些没有,当爬取完数据之后,就关闭Probar。
主JFrame中相关代码:
Probar类,表示进度条
不知道为什么这个JDialog每次只有爬取完数据,也就是运行到JOptionPane.showMessageDialog(this,"爬取完成");才会显示出来,有什么办法可以让这个ProBar类可以立即显示出来?
主JFrame中相关代码:
/**** 准备开始爬取数据 ***/
Probar probar=new Probar(this);//这里this是作为parentComponent传入
new Thread(probar).start();
下面爬取数据,当爬取完数据时:
probar.setCanRun(false);
Probar类,表示进度条
public class Probar extends JDialog implements Runnable{
private boolean canRun=true;
private JLabel jl1=new JLabel("正在加载中,请稍后");
private JProgressBar pb=new JProgressBar(JProgressBar.HORIZONTAL);//进度条
private JLabel lbLog=new JLabel("消息日志");
private JTextArea taLog=new JTextArea();
private JScrollPane spLog=new JScrollPane(taLog);
public Probar(Component parentComponent){
super((JFrame) parentComponent);
this.setSize(800,650);
this.setLayout(null);
jl1.setSize(150,70);
jl1.setLocation(340,0);
jl1.setFont(new Font("黑体",Font.BOLD,24));
this.add(jl1);
pb.setLocation(100,70);
pb.setSize(600,15);
pb.setBorderPainted(true);
pb.setIndeterminate(true);
pb.setVisible(true);
this.add(pb);
lbLog.setLocation(47,75);
lbLog.setSize(120,70);
lbLog.setFont(new Font("黑体",Font.PLAIN,20));
this.add(lbLog);
taLog.setFont(new Font("微软雅黑",Font.PLAIN,18));
taLog.setEnabled(false);
spLog.setLocation(50,123);
spLog.setSize(680,450);
this.add(spLog);
this.setVisible(true);
GUIUtil.toCenter(this);
}
public void setCanRun(boolean canRun) {
this.canRun = canRun;
}
public void insertLog(String msg){
taLog.append(msg+"\n");
}
@Override
public void run() {
while(canRun) {
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
JOptionPane.showMessageDialog(this,"爬取完成");
this.dispose();
}
public static void main(String[] args) {
new Probar(null);
}
}
不知道为什么这个JDialog每次只有爬取完数据,也就是运行到JOptionPane.showMessageDialog(this,"爬取完成");才会显示出来,有什么办法可以让这个ProBar类可以立即显示出来?
...全文
相关推荐
从一个jframe切换到另一个jframe时,Java中的Swing GUI问题。
阅读这份文档将进一步帮助你理解和掌握Java Swing中处理GUI问题的技巧,以创建更加高效和用户友好的应用程序。
java点击按钮弹出自定义对话框
下面将详细介绍如何在Java中实现点击按钮后弹出自定义对话框的功能。首先,Java提供了两种主要的对话框类型:JOptionPane和JDialog。
模态对话框与非模态对话框程序Java示例
这确保了用户必须先处理当前的对话框问题,然后才能继续执行其他操作。在Java中,JOptionPane类提供了一些预定义的模态对话框,如消息对话框、确认对话框、输入对话框等。
swing 教程 非常好的PPT
通过学习Swing的基本界面编程,开发者可以构建出用户友好的Java应用程序,同时避免了AWT的一些限制和问题。
Java的小技巧(很小的)
### Java的小技巧详解在Java开发过程中,经常会遇到一些细节问题,这些小技巧不仅能提高我们的工作效率,还能让我们编写的程序更加优雅。本文将详细介绍几个实用的Java小技巧及其应用场景。


Java SE
