私はファイルを変換する小さなプログラムを書いています。プログラムがループしてすべての関連ファイルを変換する間、ユーザーに待つように求めるポップアップ ボックスを表示したかったのですが、小さな問題が発生しています。ポップアップするボックスには、JLabel と JButton が必要です。ユーザーが「待っている」間、「お待ちください」というメッセージを表示し、「OK」JButton を無効にし、終了したらテキストを設定したかったのです。ファイルが正常に変換されたことを知らせ、変換されたファイルの数を示します。(ラベルのテキストを設定してボタンを有効にするアラートというメソッドを書きました。)問題は、プログラムの実行中はボックスが空で、ラベルとボタンが表示されず、終了すると、必要な最終的なテキストを含むラベルが表示され、ボタンが有効に表示されます。何が起こっているのか正確にはわかりません.JLabelとJButtonの修飾子を数回変更しようとしましたが、正しく動作しないようです. ポップアップするボックスのコードは次のとおりです。
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");
}
}