jFrame在达到值时退出

时间:2013-10-22 14:32:18

标签: java swing jframe

我希望在达到某个值时关闭一个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);


}
}

3 个答案:

答案 0 :(得分:2)

我建议您阅读How to Use Progress Bars上的Swing教程作为示例,因为您当前的代码结构不支持您的要求。那就是你不断需要更新进度条值,所以你需要一些循环。

另外,我怀疑你应该使用JFrame。通常,您将使用主应用程序中的弹出式JDialog。完成任务后,请参阅Nizil建议关闭对话框。

答案 1 :(得分:1)

您可以使用java.awt.Window#dispose()

答案 2 :(得分:-1)

这是一个简单的过程:

if(progressbar.getValue==100){  
    System.exit(0);
}