在windowOpened加上 setExtendedState(MAXIMIZED_BOTH)方法,在显示界面先执行setSize()方法,后在执行setExtendedState(MAXIMIZED_BOTH)方法,界面有一个跳动的过程,有什么办法解决吗

解决方案 »

  1.   

    在调用setSize()和setExtendedState(MAXIMIZED_BOTH)之前不要调用show()方法把窗口显示出来,先最大化之后再show();
      

  2.   

    试过了,不好使,把show()方发放到后面,执行完以后,显示的是setSize()方法
      

  3.   

    不要把setSize(), setExtendedState()这些方法调用都放到windowOpened里
    windowOpened()方法被调用的时候窗口已经显示出来了。
    import javax.swing.JFrame;public class WindowTest
    { public static void main(String[] args)
    {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(500, 400);
    f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    f.show();
    }
    }
      

  4.   

    不行
    我试过了,不执行f.setExtendedState(JFrame.MAXIMIZED_BOTH);
      

  5.   

    f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    只有放到windowsOpen里,才有用
      

  6.   

    我遇到过,方法是show()一定要最后做,至少要在已经最大化Frame之后做
      

  7.   

    可把方法是show()放到后面,把setExtendedState(JFrame.MAXIMIZED_BOTH);放到前面时setExtendedState(JFrame.MAXIMIZED_BOTH);不起作用
      

  8.   

    /**
     * 窗口置中
     *
     * @param window
     */
    public static void centerWindow(Window window) {
    Rectangle rect = getScreenSize();
    int left = (rect.width - window.getWidth()) / 2;
    int top = (rect.height - window.getHeight()) / 2;
    window.setLocation(left, top);
    } /**
     * 获取可使用的窗口的大小
     *
     * @return
     */
    public static Rectangle getScreenSize() {
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice device = env.getDefaultScreenDevice();
    GraphicsConfiguration config = device.getDefaultConfiguration();
    Toolkit kit = Toolkit.getDefaultToolkit();
    Insets insets = kit.getScreenInsets(config);
    Dimension dim = kit.getScreenSize();
    return new Rectangle(insets.left, insets.top,
    dim.width - insets.left - insets.right,
    dim.height - insets.top - insets.bottom);
    } /**
     * 最大化窗口
     *
     * @param window
     */
    public static void maxWindow(Window window) {
    Rectangle rect = getScreenSize();
    window.setSize(rect.width, rect.height);
    }
      

  9.   

    this.setBounds( (GraphicsEnvironment.getLocalGraphicsEnvironment().
                         getMaximumWindowBounds()));