我正在使用JProgressBar显示进度。但是,如何显示ProgressBar从0加载到100?我从互联网上获取了代码,但没有加载ProgressBar,但它可以正常工作。
码
progressFrame = new JFrame(); // frame to display progress bar
progressBar = new JProgressBar(0,100);
progressBar.setValue(0);
progressBar.setStringPainted(true);
progressFrame.add(progressBar);
new SwingWorker<Void,Void>()
{
protected Void doInBackground() throws SQLException, ClassNotFoundException
{
Class.forName("oracle.jdbc.driver.OracleDriver");
progressBar.setValue(0);
frame.setEnabled(false); // frame = main frame
//tableclass creates a JTable with data from database
tableclass = new TheDatabaseTable(deptName);//it takes time to create
progressBar.setValue(50);
frame.getContentPane().removeAll();
frame.setContentPane(tableclass);
frame.validate();
frame.repaint();
progressBar.setValue(100);
//progressFrame.dispose();
return null;
};
protected void done()
{
//progressFrame.setVisible(false);
frame.setVisible(true);
progressFrame.dispose();
frame.setEnabled(true);
}
}.execute();
如果有人编辑上面的代码可以正常工作,我将不胜感激。谢谢。
你必须为此使用线程。设计一个实现Runnable
接口的类,该接口将更新这样的值。
class ProgressBarUpdator implements java.lang.Runnable {
/**
* Progress bar that shows the current status
*/
private javax.swing.JProgressBar jpb = null;
/**
* Progress bar value
*/
private java.lang.Integer value = null;
/**
* Constructor
* @param jpb The progress bar this has to update
*/
public ProgressBarUpdator(javax.swing.JProgressBar jpb) {
this.jpb = jpb;
jpb.setMaximum(100);
}
/**
* Sets the value to the progress bar
* @param value Value to set
*/
public void setValue(java.lang.Integer value) {
this.value = value;
}
/**
* Action of the thread will be executed here. The value of the progress bar will be set here.
*/
public void run() {
do {
if (value != null) {
jpb.setValue((int)java.lang.Math.round(java.lang.Math.floor(value.intValue() * 100 / maximum)));
}
try {
java.lang.Thread.sleep(100L);
} catch (java.lang.InterruptedException ex) {
ex.printStackTrace();
}
} while (value == null || value.intValue() < jpb.getMaximum());
}
}
并在你的框架类中progressBar与新类一起使用
ProgressBarUpdator ju = new ProgressBarUpdator(progressBar);
new java.lang.Thread(ju).start();
每当你想更改值时,只需使用以下语句
ju.setValue([Value to set]);
所以我在谷歌上搜索了这个,但我能在上面找到任何东西:我在代码中调用了这个方法 然后,我添加了一个JProgressBar,称为进度条,并在单击GUI上的按钮时调用此代码: Progresslabel只是一个显示进度的标签。现在,当我这样做时,进度条显示如下: http://i.imgur.com/gXp5ByH.png 与其他应用程序上的情况不同: http://i.imgur.com/M61Cd
问题内容: 我想显示使用servlet上传的上传进度栏。我尝试了iFrame技术Ajax。页面未重新加载,文件也被更新。但是,进度条没有到来。是否有可用于JavaServlts的jQuery进度插件? 谢谢!! 问题答案: 我强烈建议使用jQuery Uploadify 插件进行Ajax文件上传。它还带有进度条。您可以在其演示页面上找到示例。 与JSP /Servlet集成并不难。您基本上可以使“
问题内容: 我正在编写一个Java应用程序(将NetBeans用作IDE和jFrame表单),并且其中一部分下载了文件。如何使用下载的当前进度更新进度条,或者至少获取另一个线程中当前下载的字节总数? 以下是我的代码的一部分: 问题答案: 一个工作示例,使用您的代码并在进度栏中显示进度,如下所示: 这显示了如何做-在使用它之前,您应该考虑GUI-Threads等。
我正在编写一个Java应用程序(使用NetBeans作为IDE和jFrame表单),其中一部分下载一个文件。我如何用下载的当前进度更新进度条,或者至少获得另一个线程中当前下载的字节总量? 下面是我的一部分代码:
使用一些额外的类和一些巧妙的浏览器特有的 CSS,样式化 HTML5 的<progress> 元素。确保你阅读了浏览器支持。 <progress class="progress" value="0" max="100">0%</progress> <progress class="progress" value="25" max="100">25%</progress> <progress c
进度条 <div class="ui-progress"> <span style="width:50%"></span> </div> 图片上进度条 <ul class="ui-grid-halve"> <li> <div class="ui-grid-halve-img"> <span style="background-ima