难道JFrame 类中有这个方法??
我编译了,结果却说没这个方法

解决方案 »

  1.   

    最笨的方法,
    先对窗口使用
    setVisible(false);
    再用
    setVisible(true);
    应该有效的,不过方法就差了一点。
      

  2.   

    private GridBagLayout bag=new GridBagLayout();
    bag.layoutContainer(??),??为你容器名,试试,或许有效,我在GridLayout中可以正确刷新版面
      

  3.   

    哦,看了一下你的代码:
    在你的监听器中再加这行代码
    bag.layoutContainer(container),试试,或许有效,我在GridLayout中可以正确刷新版面
      

  4.   


    我也碰到过类似问题,解决办法是:
    container.validate();
    container.repaint();
    如果还不行就用
    container.getParent().vilidate();
    container.getParent().repaint();详情e_mail: [email protected]
      

  5.   

    to Anubis12345 (东大d徒然草) : 我遇到过你类似的问题,你在要刷新 JFrame 时用以下语句一定ok!!!  哈哈哈........frame1.validate();注:frame1是你界面应用程序的一个对象
      

  6.   

    加入你放置所有这些控件的JPanel为panel或者JFrame为frame,则在这个panel或frame里加SwingUtilities.updateComponentTreeUI(this);
    如果还解决不了问题,在你每次改变界面后,加一句this.updateUI();
    因为Swing的UI是在构造函数时就定下来了,所以你后来改变了其他控件并不知道,所以Swing提供了一个工具SwingUtilities类,这个类很有用的,用SwingUtilities.updateComponentTreeUI(JComponent com);来通知所有有包含关系的控件树来刷新UI。
      

  7.   

    SwingUtilities.updateComponentTreeUI(this);
    尽量不要用这个方法,代价太大了。
      

  8.   

    强烈建议不要使用.updatexxxxUI(),参阅API specification