Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JProgressBar与其他组件关联?_Java_Swing - Fatal编程技术网

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

Java 如何将JProgressBar与其他组件关联?,java,swing,Java,Swing,我需要在单击按钮时显示进度条,并且进度与显示jtextpane的信息相关 这是进度条的方法 private JProgressBar getMethodsjProgressBar() { if (methodsjProgressBar == null) { methodsjProgressBar = new JProgressBar(); methodsjProgressBar.setVisible(false); methodsjProg

我需要在单击按钮时显示进度条,并且进度与显示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可以很好地用于您的后台线程
  • 监控信息读入的一种方法是使用一个对话框,如果通过流读入需要任何可感知的时间,该对话框将显示一个对话框
  • 否则,如果要使用JProgressBar,则在SwingWorker内部,通过
    setProgress(…)
    将progress属性设置为0到100之间的值,向SwingWorker添加PropertyChangeListener并侦听对progress属性的更改,然后使用此数据更新JProgressBar
  • 附带建议:避免使用
    null
    布局和
    setBounds(…)
    ,因为这将导致难以更新或维护的非常严格的GUI

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

对不起,但是你的问题很不清楚。请提供更多相关细节和相关代码。另外,这似乎是一个Swing问题,因此我在问题中添加了一个Swing标记,但是为什么要使用Eclipse,尤其是Eclipse插件标记呢?这个问题似乎与Eclipse插件无关。@Danay:您在java类中的何处调用“getMethodsjProgressBar”方法。我唯一得到的是在“getLoadMethodsButton”中,您试图显示progressbar。我需要做的是在jtextpane加载内容时更改进度条的百分比,抱歉,我很难用英语解释所有这些,请耐心等待,谢谢你的推荐我还没有调用这个方法是吗?你看了吗?好的,谢谢,我会尝试一下,稍后我会告诉你它是否有效