Java JLabel文本不显示
我在Java JLabel文本不显示,java,swing,event-dispatch-thread,Java,Swing,Event Dispatch Thread,我在JFrame上添加了JLabel,并在单击JOptionPane的“是”按钮时显示了框架,它显示了框架,但没有显示标签文本 int yes=JOptionPane.showConfirmDialog(null),“是否要重新激活以前的 计划“”,“重新激活计划”,JOptionPane.OK\u取消\u选项, JOptionPane.INFORMATION(信息和消息); if(yes==JOptionPane.OK\u选项){ setVisible(假); disp_wait.setVi
JFrame
上添加了JLabel
,并在单击JOptionPane
的“是”按钮时显示了框架,它显示了框架,但没有显示标签文本
int yes=JOptionPane.showConfirmDialog(null),“是否要重新激活以前的
计划“”,“重新激活计划”,JOptionPane.OK\u取消\u选项,
JOptionPane.INFORMATION(信息和消息);
if(yes==JOptionPane.OK\u选项){
setVisible(假);
disp_wait.setVisible(true);
对于(int i=0;i在事件处理过程中,您的所有代码都在执行一些处理。在Java中,这是一个问题,只有在所有事件处理完成后才会绘制GUI。除此之外,最好能看到JFrame的代码,它可能不会在调用pack()之前添加标签。不要阻止EDT(事件调度线程)-发生这种情况时,GUI将“冻结”。而不是调用Thread.sleep(n)
为重复任务实现Swing计时器,或为长时间运行的任务实现SwingWorker。有关更多详细信息,请参阅。JFrame disp_wait;JLabel wait_lbl;disp_wait=new JFrame();wait_lbl=new JLabel();disp_wait.setLayout(new FlowLayout());disp_wait.setSize(300300);disp_wait.setLocation(200200);wait_lbl.setText(“请等待…”);disp_wait.add(wait_lbl);disp_wait.pack();
int yes = JOptionPane.showConfirmDialog(null,"Do you want to reactivate previous
schedule(s)","Reactivate Schedule",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if(yes == JOptionPane.OK_OPTION) {
setVisible(false);
disp_wait.setVisible(true);
for(int i=0 ; i<options.taskList.size(); i++) {
dataList = Options.getInstance().getTaskList();
Task task=dataList.get(i);
boolean active = task.getActive();
if(active) {
task.setActive(true);
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
ex.getMessage();
}
}
}
}