如何将JProgressBar与其他组件关联起来?

时间:2015-04-28 16:00:57

标签: java swing

当我点击按钮时,我需要显示进度条,并且进度与显示jtextpane的信息有关。

这是进度条的方法

private JProgressBar getMethodsjProgressBar() {
    if (methodsjProgressBar == null) {
        methodsjProgressBar = new JProgressBar();
        methodsjProgressBar.setVisible(false);
        methodsjProgressBar.setStringPainted(true);
        methodsjProgressBar.setBounds(new Rectangle(20, 244, 103, 22));
        methodsjProgressBar.setString("Cargando...");
    }
    return methodsjProgressBar;
}

这个是按钮

private JButton getLoadMethodsButton() {
    if (loadMethodsButton == null) {
        loadMethodsButton = new JButton();
        loadMethodsButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                FileChooserDirectory.getInstance().getAddress();
                @SuppressWarnings("unused")
                LoadClass loadClass = new LoadClass();
                methodsjProgressBar.setVisible(true);
            }
        });
        loadMethodsButton.setText("Buscar clase");
        loadMethodsButton.setBounds(237, 255, 126, 26);
    }
    return loadMethodsButton;
}

我需要知道在我加载课程时我需要做些什么才能更改jprogressbar值

1 个答案:

答案 0 :(得分:0)

建议:

  • 在后台线程中执行任何文件输入/输出,以免占用Swing事件线程。
  • SwingWorker可以很好地为您的后台线程工作。
  • 监控信息读取的一种方法是使用ProgressMonitorInputStream,如果通过Stream的读数需要花费任何可观的时间,它将显示一个对话框。
  • 否则,如果你想使用JProgressBar,那么在SwingWorker中,通过setProgress(...)将progress属性设置为0到100之间的值,将一个PropertyChangeListener添加到你的SwingWorker并监听progress属性的变化,然后使用此数据更新JProgressBar。
  • 一方建议:避免使用null布局和setBounds(...),因为这会导致非常严格的GUI难以更新或维护。

如果您需要更详细的帮助,请考虑创建和发布最小示例程序