我正在编写一个转换文件的小程序,我想弹出一个框,要求用户在程序循环并转换所有相关文件时请稍候,但我遇到了一个小问题。弹出的框应该有一个 JLabel 和一个 JButton,而用户正在“等待”我想显示一条消息说请稍候,以及一个禁用的“OK”JButton,然后当它完成时我想设置文本的 JLabel 让他们知道它成功地转换了他们的文件,并给他们计算转换了多少文件。(我写了一个名为 alert 的方法,它设置标签的文本并启用按钮。)问题是,当程序运行时,框是空的,标签和按钮不可见,当它完成时,标签显示我想要的最终文本,并且按钮显示为已启用。我不确定到底发生了什么,我尝试多次更改 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");
}
}