0

我已经构建了一个小型 java 应用程序,它用于更新 mysql 数据库上产品的产品价格、数量和特价等,使用 csv 文件作为我从父亲电气零售业务的封闭计算机系统收到的输入。

除了进度条,我一切正常。由于 JProgressBar 的设置,我终其一生都无法弄清楚如何将 JProgressBar 放入我的应用程序中。在获得软件工程学位的前 6 个月,我对编程还比较陌生。

基本上,我有 3 个类:数据库(执行与 mysql db 的所有交互)更新程序(解释 .csv 文件并与数据库模块交互以执行功能。它循环通过从 .csv 文件创建的数组,并更新记录) GUI(基本 gui ,由 JFrame、JPanel、按钮和文本字段组成,用于数据库登录和浏览 .csv 文件)

GUI 创建数据库实例,使用其文本字段作为输入,这被传递给更新程序类的实例,也由 GUI 创建。

我应该在这个项目的哪里插入进度条,或者我应该对我的项目设置进行哪些更改以允许这样做?

非常感谢您的帮助,我卡住并搜索了互联网,找不到合适的方法使进度条适合我的情况。

请对我放轻松:PI知道我可能在整个设置过程中犯了根本错误,哈哈

谢谢,威尔逊。

4

1 回答 1

0

进度条肯定是 GUI 组件,那么它还属于哪里呢?然而,它经常显示在您自己的非 Swing 线程中发生的事情的进度(在 Swing 线程中做太多会冻结 GUI 控件)。您不能直接从非 Swing 线程触摸进度条。使用invokeLaterinvokeAndWait将其向前移动。为了避免内存垃圾,可以重用相同的Runnable,将所需的进度分配给内部字段。

Runnable doProgress = new Runnable() {

   int progress = 0;

   public void run() {
       myProgressBar.setValue(progress++);
   }
};
// do something 
SwingUtilities.invokeLater(doProgress);
// do more
SwingUtilities.invokeLater(doProgress);
于 2012-12-28T07:54:49.420 回答