Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JLabel文本不显示_Java_Swing_Event Dispatch Thread - Fatal编程技术网

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();
                }
            }
        }
    }