日期:2014-05-20  浏览次数:20677 次

JAVA swing界面的问题
请问一下 一个JAVA SWING的程序 在执行中 往界面添加了一个JLabel 我调用了repaint函数 不能显示出来,但是我最小化窗口然后还原 就能显示出来 
这个过程中执行了什么函数才使得添加的JLabel显示出来的呢
或者有没有别的方法不用最小化然后还原 让添加的JLabel就能显示出来的


------解决方案--------------------
将repaint()方法换位valide()就可以了
Java code
@Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        JLabel jl = new JLabel("new Label");
        panel.add(jl, BorderLayout.NORTH);
        panel.validate();
//        panel.repaint();// 在这几句代码里面添加的JLabel无法显示 要最小化 然后还原就能显示
    }

------解决方案--------------------
panel.repaint();
的前面加一句
panel.revalidate();
试试