繁体   English   中英

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

[英]How can I relate a JProgressBar with other component?

当我单击按钮时,我需要显示进度栏,并且进度与显示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值的方法

意见建议:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM