Tag: jprogressbar

使用下载过程连接JProgressBar

我有以下代码。 我不能让它发挥作用。 我必须提到URL是重定向的。 我的意思是url = http://www.thissite.com并重定向到http://www.othersite.com 。 但是我想用初始url来实现它。 public void download(String address, String localFileName, JProgressBar progress ) { OutputStream out = null; URLConnection conn = null; InputStream in = null; try { URL url = new URL(address); // Open an output stream to the destination file on our local filesystem out = new BufferedOutputStream(new FileOutputStream(“/MusicDownloads/”+localFileName)); […]

JFrame在while循环期间冻结

我正在研究一个Java程序,它读取文本文件做了一些概率计算。 读取文件和所有相关的计算都是在while循环中完成的。 我使用JFrame创建了一个GUI,我在其中添加了一个进度条(使用JProgressBar)来显示进度,因为程序需要一段时间来处理文件。 代码看起来像 – while( there are more files to read ) { Read this file ; Do calculations ; Update progress bar ; } 现在,问题是一旦while循环开始并处理第一个文件,JFrame就会冻结 。 进度条没有更新,我无法按下JFrame中的任何按钮。 一旦while循环结束,帧就会更新,进度条会更新到最终值(因此,进度条从0开始然后暂停,最后变为100) 。 有人可以解释为什么JFrame会冻结吗? 是否可以在while循环迭代中更新它(JFrame中的进度条)? 谢谢 !

JProgressBar上的自定义画家

我试图通过使用自定义Painter对象来改变当前Swing L&F(我现在使用的是Nimbus)中进度条的颜色,但是在创建时这些进度条有时会坚持使用它们的原始颜色(这个变化似乎是随机发生)。 我可能错过了一些简单的东西,但我很难过,Painter对象(以及它在下面的调用)…… import javax.swing.Painter; import java.awt.*; public class ProgressPainter implements Painter { private Color light, dark; private GradientPaint gradPaint; public ProgressPainter(Color light, Color dark) { this.light = light; this.dark = dark; } @Override public void paint(Graphics2D g, Object c, int w, int h) { g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); gradPaint = new GradientPaint((w / 2.0f), 0, light, […]

我可以进行ProgressMonitor对话模式吗?

有没有办法从ProgressMonitor模态进行对话? 编辑: JAVA API中的ProgressMonitor类将带来一个顶部但不是Modal的对话框。 用户仍然可以访问后台GUI。 我正在寻找一个modal dialog来显示进度,并允许用户在中间停止任务。

使用Java复制文件时的进度条

我确定之前已经问过这个问题,但我找到的答案都不能与我现有的代码很好地协调。 我发布这个问题,以防有一种方法可以做到这一点,而不是完全重做我到目前为止所拥有的。 这个想法是在将文件和目录从一个驱动器复制到另一个驱动器时显示一个非常基本的进度条。 我有一个名为BasicCopy的类,用于将图片,文档,video和音乐文件夹(Windows机器上的标准)的内容复制到第二个驱动器上备份目录中相同名称的文件夹。 到目前为止这是class级: import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.io.FileUtils; public class BasicCopy { String username = “”; String mainDrive = “”; String backupDrive = “”; String backupDir = “”; String[] directories; public BasicCopy(String inDrive, String outDrive, String username){ mainDrive = inDrive; backupDrive = outDrive; this.username = username; createBackupDirectory(); copyDirectories(); […]

Java JProgressBar使用Image

我正在用Java制作游戏,我正在使用JProgressBar作为健康栏。 我想为JProgressBar使用图像(而不是颜色),但我无法做到。 我已经尝试使用paint方法, paintComponent方法,创建一个新类,但它不起作用。 愿有人请帮帮我吗?

如何使用JProgressBar显示文件复制进度?

我正在开发一个通过网络传输文件的项目,我想要合并一个JProgressBar来显示文件传输过程中的进度,但我需要帮助。

将JProgressBar与Java Mail一起使用(知道transport.send()之后的进度)

我有这个发送电子邮件的程序。我想知道我是否可以使用progress bar来改善用户界面。 我想要的是进度条应该在遇到语句transport.send()之后相应地进展。有一种方法我可以知道进度。 知道的是,当用户按下send启动一个发送send的新线程。点击发送后的响应很差,因为用户不知道他的动作是否被收听。 (虽然它正在被听!)在半分钟的间隙后,他得到了一个JOptionPane ,是的,消息已被发送。你会同意每个人都渴望知道他的行为是否正在被处理。 有什么办法我可以使用进度条。 ( 即我怎么知道我的电子邮件程序的进度 )如果我不能使用JProgressBar ,我可以使用的另一种方法告诉用户他的命令正在处理,他不用担心。 顺便说一下,这是负责发送电子邮件的部分。 try { message.setFrom( new InternetAddress(from)); message.setRecipients(MimeMessage.RecipientType.TO , InternetAddress.parse(to) ); message.setSubject(subject); message.setText(emailMessage); attachment.setDataHandler( new DataHandler( fds ) ); attachment.setFileName( fileName ); messagePart.setText( emailMessage ); Multipart gmailMP = new MimeMultipart(); gmailMP.addBodyPart(attachment); gmailMP.addBodyPart( messagePart ); message.setContent( gmailMP ); Transport transport = session.getTransport(“smtp”); transport.send(message); // LINE THAT […]

下载文件,同时还更新JProgressBar

我已经尝试了不同方法的音调来使其工作,但它们要么不使用进度条,要么不按照我希望的方式工作。 我已经创建了一个带有进度条的新窗口,需要创建一个允许我下载文件同时更新JProgressBar 。 有一个Apache Commons方法非常容易用于下载文件,但它似乎与JProgressBar不兼容。 我在另一个线程中运行它时遇到了麻烦, SwingUtilities.invokeLater似乎没有更新到进度条,但它确实运行,因为我可以将它打印到控制台。 我甚至尝试过progressBar.repaint()方法。 所以我想要的是一种方法,可以下载文件,同时还更新JProgressBar以反映下载的状态。 提前致谢! 基尔

如何使用FileChannels transferFrom()方法监控进度(JProgressBar)?

我需要一些JProgressBar组件的帮助。 我的程序使用java.nio FileChannels将文件从一个地方复制到另一个地方。 实际的复制方法是transferFrom() 。 我现在有两个问题。 如何监控FileChannel的传输进度? 我发现的所有教程都使用传统的java.io InputStreams,并在循环输入流时增加进度int。 我的复制方法(FileChannel方法)封装在一个单独的方法中,该方法由其他方法调用,这些方法迭代源文件夹和目标文件夹,然后为每个文件调用FileChannel方法。 如何为完整的复制机制实现ProgressBar? 好吧,我应该早一点阅读常见问题解答,所以我想我必须编辑我的初始post,而不是评论答案,对吧? 好的,这就是我到目前为止所做的。 正如jambjo建议的那样(感谢顺便说一句), transferFrom()方法现在已经循环。 BTW:是否有一个更好的块大小,或者它取决于我的进度条的粒度,就像EJP所说的那样? 这是我的代码片段: while (position < size) { position += destination.transferFrom(source, position, chunkSize); current = (position/size)*100; System.out.println(current); } 不幸的是,’当前’值在循环内保持为0,我不知道为什么。 我错过了什么吗? 再次感谢jambjo ! 我非常感谢你的投入! 现在单个文件的进度监控工作,让我们解决我的第二个问题。 我不想,我不仅要监控一个文件的进度,而是监视一堆文件的进度。 我的主要复制方法遍历各种目录并通过调用实际的传输方法复制适当的文件。 因此复制方法不传输文件,它们只是选择实际传输方法的文件。