簡體   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