我要把设计的GUI放在屏幕的正中央,并且初始时就最大化,应该怎么做?我在API里找了半天也找不到解决的办法.Who knonws?Please do not bother to tell me.....................

解决方案 »

  1.   

    have a try//GUI放在屏幕的正中央
    Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (int)((screen.getWidth()-your_frame.getWidth())/2);
    int y = (int)((screen.getHeight()-your_rame.getHeight())/2);
    your_frame.setLocation(x, y);
    your_frame.setVisible(true);//初始时就最大化
    your_frame.setState(Frame.MAXIMIZED_BOTH);
      

  2.   

    好像后面一个不行,反而初始时总是最小的了.只有标题栏了????????????????????????
    但我改进了下:
    Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize(); 
    myFrame.setSize((int)screen.getWidth(),(int)screen.getHeight);
    但这样电脑的任务栏也被覆盖了.不方便用户进行操作,于是我这样设:
    myFrame.setSize((int)screen.getWidth(),(int)screen.getHeight-30);
    但这样感觉总是不雅,有没有更好的办法,使我的GUI界面覆盖除任务栏以外的所有区域.
      

  3.   

    再问一个跟上面没什么关系的问题:实现键入回车键就等价于点击按钮
    class MyFrame extends JFrame
    {
             JTextField jtf = new JTextField();
             JPasswordField jpf = new JPasswordField();
            JButton sure=new JButton("确定");
            sure.addActionListener(this);
            sure.addKeyListener(new KeyAdapter(){
             public void keyPressed(KeyEvent e) 
             {
             if(e.getKeyCode()==KeyEvent.VK_ENTER ){
             sure.doClick();
             }
             }
     });
             ------------- 以下省略----------------------
    }
    遇到一个问题,也就是只有在按钮获得焦点才能监听键盘是否输入了enter键,我试着把sure.addKeyListener(new KeyAdapter(){
    改为this.addKeyListener(new KeyAdapter(){可弄得更糟,按下Enter键根本没反应.Why???????????????????????????????????????????
    总之如何能在按钮不获得焦点的情况下,使按下Enter键就可以达到点击按钮的目的?????
      

  4.   

    好像后面一个不行,反而初始时总是最小的了.只有标题栏了???????????????????????? 
    --------------------------------
    //初始时就最大化,这样改试试
    int state = your_frame.getState();
    state = state | Frame.MAXIMIZED_BOTH;
    your_frame.setState(state);
    --------------------------------遇到一个问题,也就是只有在按钮获得焦点才能监听键盘是否输入了enter键,我试着把sure.addKeyListener(new KeyAdapter(){ 
    改为this.addKeyListener(new KeyAdapter(){ 可弄得更糟,按下Enter键根本没反应.Why??????????????????????????????????????????? 
    总之如何能在按钮不获得焦点的情况下,使按下Enter键就可以达到点击按钮的目的?????
    ---------------------------------------
    你的焦点不在监听对象上,是不能触发事件的,所以还是按你原来的做法,通过按tab键让焦点转到button上在按enter键,或者改为在jpf上加监听,也就是jpf.addKeyListener(new KeyAdapter(){。 this.addKeyListener是在你的frame上追加监听,但是因为你的焦点不在frame上,所以也不会触发事件了。 
      

  5.   

    第一个问题还是没有解决,还是最小的,在屏幕的左上角,只有标题栏??????????????????
    -----------------------------------------------------------------------------------------------------
    第二个问题我还有一个疑问,就是为什么JFrame没有获得焦点,按我的观点是在frame载入时就获得了焦点,直得它销毁为止.要不然frame什么时候才获得焦点?虽然我可以为frame上的每个控件注册KeyListener,这样只要一按下enter,就相当于单击按钮了.但这样也太麻烦了.我想问的就是能不能在frame上,注册一次KeyListener就可以达到这个目的?
      

  6.   

    Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize(); 
    int x = (int)((screen.getWidth()-your_frame.getWidth())/2); 
    int y = (int)((screen.getHeight()-your_rame.getHeight())/2); 
    your_frame.setLocation(x, y); 
    your_frame.setVisible(true); //初始时就最大化 
    your_frame.setState(Frame.MAXIMIZED_BOTH);
      

  7.   

    LZ可能对焦点的概念不清楚,所谓焦点,是指当前处于active状态,可以响应用户事件,frame载入时是会获得了焦点,但是当你操作其他控件时,frame就会失去焦点,而你当前操作的控件就会获得焦点。而且对于容器的焦点好像有这个一个特点,如果容器上没有任何控件,那么焦点就会在容器上,如果容器上有控件,那么焦点就会在控件上,缺省的第一个被添加到容器的控件,当然,可以通过类似于taborder这样的属性来设置初始焦点,也可以通过requestFocus来控制聚焦。至于最大化,按javadoc,应该这样设置是可以的,具体还需要哪些相应的设置,我就没细查了,LZ应该学会自己查看javadoc,不要什么都依赖于人,不管怎么说,我已经算是把方向指给你了,有问题你应该按照这个方向自己去寻找突破口,这样你才能有进步。
      

  8.   

    //初始时就最大化,帮你看了一下jdkdoc  
    your_frame.setExtendedState(Frame.MAXIMIZED_BOTH);setState是兼容于老版本jdk,只有两种状态,所以应该用扩展状态设置。
      

  9.   

    qybao说的没错,我其实是太懒了,本来javadoc都会看得懂的,只是懒得去找.
    I hava made a decision that I will look up the javaAOI more to solve problems in my study.