我希望在达到某个值时关闭一个jFrame窗口,即100.框架只是一个进度条,显示以显示计算的距离。当百分比= 100时我该如何退出?我的代码如下。
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.border.Border;
import java.util.Scanner;
public class PicCalc
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
long i = 0;
int x = 0;
int itinerations = 1;
int percent = 100/itinerations;
System.out.println("How many itinerations?");
itinerations = keyboard.nextInt();
for(i = 0; i <= itinerations; i++)
{
x = x + 5; //Will be replaced with more complicated stuff later
}
JFrame f = new JFrame("Loading...");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
JProgressBar progressBar = new JProgressBar();
progressBar.setValue(percent);
progressBar.setStringPainted(true);
Border border = BorderFactory.createTitledBorder("Calcualating...");
progressBar.setBorder(border);
content.add(progressBar, BorderLayout.NORTH);
f.setSize(300, 100);
f.setVisible(true);
System.out.println(x);
}
}
答案 0 :(得分:2)
我建议您阅读How to Use Progress Bars上的Swing教程作为示例,因为您当前的代码结构不支持您的要求。那就是你不断需要更新进度条值,所以你需要一些循环。
另外,我怀疑你应该使用JFrame。通常,您将使用主应用程序中的弹出式JDialog。完成任务后,请参阅Nizil建议关闭对话框。
答案 1 :(得分:1)
答案 2 :(得分:-1)
这是一个简单的过程:
if(progressbar.getValue==100){
System.exit(0);
}