簡體   English   中英

jFrame在達到值時退出

[英]jFrame Exiting when a value is achieved

我希望在達到某個值時關閉一個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);


}
}

我建議您閱讀關於如何使用進度條的Swing教程作為示例,因為您當前的代碼結構不支持您的要求。 那就是你不斷需要更新進度條值,所以你需要一些循環。

另外,我懷疑你應該使用JFrame。 通常,您將使用主應用程序中的彈出式JDialog。 完成任務后,請參閱Nizil關閉對話框的建議。

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

這是一個簡單的過程:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM