0

JFrames がループで正しく表示されない。コード:-

import javax.swing.*;    
import java.awt.event.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class SwingDemo {

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable(){
            public void run()
            {
        final JFrame jfrm= new JFrame("A Simple Swing Application");

        final JFrame jfrm2= new JFrame("A Simple Swing Application 2");
        jfrm.setSize(275,100);

        jfrm.setLocation(100,100);
        jfrm2.setLocation(50,50);    
        jfrm2.setSize(275,100);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    

        jfrm2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);           
        JLabel jlab = new JLabel("Swing means powerful GUIs.");         
        jfrm.add(jlab);    
        JButton button0= new JButton("loop");
        jfrm.add(button0);          
        jfrm.setLayout(new FlowLayout());    
        JLabel jlab2 = new JLabel("Swing means powerful GUIs again");           
        jfrm2.add(jlab2);    
        //jfrm2.setVisible(true);               

        jfrm.setVisible(true);

        button0.addActionListener(new ActionListener() {

            private boolean confirmAction;

            @Override
            public void actionPerformed(ActionEvent e) {

                confirmAction = true;
                if (confirmAction) {
                    try {
                while(true)
                {
                    jfrm.setVisible(false);
                                jfrm2.setVisible(true);    

                    try{
                        Thread.sleep(15000);
                    }
                    catch(InterruptedException ie)
                    {
                        System.out.println("nothing");
                    }
                            jfrm2.setVisible(false);
                    jfrm.setVisible(true);
                    }   
                    } catch (Throwable t) {
                        t.printStackTrace(System.out);
                    }
                }
            }
        });
}

});

}

}
4

2 に答える 2

1

問題が正しく更新されていないことである場合 (問題を説明していないため、これは私の唯一の考えです)、これらのメソッドをループに含めるようにしてください。

validate();
repaint();

問題が異なる場合は、お知らせください。

于 2013-05-21T13:08:22.913 に答える