gpt4 book ai didi

java - 将 JProgress Bar 连接到数组以显示工具的进度

转载 作者:行者123 更新时间:2023-12-01 09:24:03 26 4
gpt4 key购买 nike

我创建了一个工具,可以将一些数据粘贴到文本区域中,并且这些数据在数组中按行 (\n) 分割。我的工具运行完美,我只需要将数组的进度连接到进度栏,以便用户可以知道发生了什么。因此,如果数组有 10 行,进度条将从 1 开始计数,直到工具移动到下一行时达到 10 行。所以我的意思是,当它开始处理位置 0 的数组时,进度条应显示 1,当数组移动到位置 1 时,进度条应显示 2 .......

这是我的代码示例:

// Run button (start the search)
final JButton btn = new JButton("Run");
btn.addActionListener(new ActionListener() {
@SuppressWarnings("resource")
public void actionPerformed(ActionEvent e) {
try {
String getTextArea;
getTextArea = textArea.getText();
// converting the input to an array
String[] arr = getTextArea.split("\\n");
// clearing the text
textArea_1.setText("");
//line = arr.length;
// looping for the input
// doing something.....
}
// end of for loop
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "Search was not completed due to bad connection, please try pressing run again or close the tool and reopen it");
}
}
});

// Creating the progress bar
JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setValue(0);
for(int z = 0; z <= line; z++) {
progressBar.setValue(z);
z = z + 1;
progressBar.repaint();
}
progressBar.setBounds(364, 11, 139, 22);
contentPane.add(progressBar);

感谢您提前提供的帮助

最佳答案

我将您的问题解释为如何显示行号而不是百分比?

如果这是问题所在,那么您需要使用 JProgressBarsetString(String s) 方法以及 setValue(int n)

例如:

// Set up of the JProgressBar
final int MIN = 0;
final int MAX = 100;
JProgressBar progressBar = new JProgressBar(MIN, MAX);
progressBar.setStringPainted(true); // show the text on the progress bar
progressBar.setString("Loop no. " + MIN); // initial display

// Code to update the JProgressBar
for (int i=MIN; i<=MAX; i++) {
progressBar.setValue(i);
progressBar.setString("Loop no. " + i);
}

我个人更喜欢在使用进度条时使用 BoundedRangeModel 的实现。 Swing 提供了 DefaultBoundedRangeModel,它适用于大多数任务。

请记住在实现中正确使用并发,否则如果任务很长,您的界面将无法响应。 SwingWorker 可以帮助您解决此问题 https://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html

关于java - 将 JProgress Bar 连接到数组以显示工具的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com