我正在使用 Netbeans IDE 使用 Java Swing 构建一个小型测试工具。
我正在尝试更新一个标签,该标签在某种程度上没有得到“重新粉刷”/“刷新”。我查看了一些关于 SO 的类似问题,但无法解决我的问题。
private void excelFileChooserActionPerformed(java.awt.event.ActionEvent evt)
{
if(!JFileChooser.CANCEL_SELECTION.equals(evt.getActionCommand()))
{
String selectedFile = excelFileChooser.getSelectedFile().getAbsolutePath();
loaderLabel.setText("Please Wait..");
try {
//This is sort of a blocking call, i.e. DB calls will be made (in the same thread. It takes about 2-3 seconds)
processFile(selectedFile);
loaderLabel.setText("Done..");
missingTransactionsPanel.setVisible(true);
}
catch(Exception e) {
System.out.println(e.getMessage());
loaderLabel.setText("Failed..");
}
}
}
loaderLabel
是 aJLabel
并且使用的布局是AbsoluteLayout
.
所以,我的问题是“请稍候......”从未显示。尽管调用该方法processFile
大约需要 2-3 秒,但从未显示“请稍候...” 。但是,会显示“完成...”/“失败...”。
如果我在调用 之前添加popup
( ) ,则会显示“请稍候..”。我无法清楚地理解为什么会这样。JOptionPane
processFile
在进行繁重的方法调用之前,我应该遵循“良好做法”吗?我需要调用显式重绘/刷新/重新验证吗?