我寫一個小程序,轉換文件,我想有一個框彈出,詢問用戶,請稍候程序遍歷,並將所有相關的文件,但我遇到了一個小問題。彈出的框應該有一個JLabel和一個JButton,而用戶正在「等待」,我想顯示一條消息,說請等待,並禁用「確定」JButton,然後當它完成後,我想設置文本的JLabel讓他們知道它成功地轉換了他們的文件,並且給他們計算了轉換了多少文件。 (我寫了一個名爲alert的方法,用於設置標籤的文本並啓用按鈕。)問題是程序運行時,該框爲空,標籤和按鈕不可見,當標籤和按鈕結束時,標籤出現與我想要的最終文本和按鈕顯示啓用。我不確定到底發生了什麼,我試着多次更改JLabel和JButton的修改器,但我似乎無法使其正常工作。這裏是彈出的框的代碼,任何幫助都非常appricated。變化的JLabel與方法
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class PleaseWait extends javax.swing.JFrame{
private static final int height = 125;
private static final int width = 350;
final static JLabel converting = new JLabel("Please Wait while I convert your files");
private static JButton OK = new JButton("OK");
public PleaseWait(){
// creates the main window //
JFrame mainWindow = new JFrame();
mainWindow.setTitle("Chill For A Sec");
mainWindow.setSize(width, height);
mainWindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// creates the layouts//
JPanel mainLayout = new JPanel(new BorderLayout());
JPanel textLayout = new JPanel(new FlowLayout());
JPanel buttonLayout = new JPanel(new FlowLayout());
// Sets Text //
converting.setText("Please wait while I convert your files");
// disables button //
OK.setEnabled(false);
// adds to the layouts //
textLayout.add(converting);
buttonLayout.add(OK);
mainLayout.add(textLayout, BorderLayout.CENTER);
mainLayout.add(buttonLayout, BorderLayout.SOUTH);
// adds to the frame //
mainWindow.add(mainLayout);
// sets everything visible //
mainWindow.setVisible(true);
}
public static void alert(){
OK.setEnabled(true);
String total = String.valueOf(Convert.result());
converting.setText("Sucsess! " + total + " files Converted");
}
}
你可以顯示你調用alert()嗎? – 2012-08-09 19:18:45