自己又查了一下API,发现
dabout.setLocationRelativeTo(f);可以使在f中央显示。但心里有点糊涂。这个对不对呢?
swing呢?

解决方案 »

  1.   

    Toolkit toolkit=getDefaultToolkit();
    Dimension size=toolkit.getScreenSize();
    frame.setBounds((size.getWidth()-frame.width)/2,(size.getHeight()-frame.height)/2,frame.widhth,frame.height);
    这样你的窗口肯定是在屏幕中间显示了。
      

  2.   

    谢谢 lightEIF(苍鹰)  !!
    看我在你的启示下做的对不?是否有更合理的写法?
    //如何是Frame显示在屏幕中央,以及如何使依附于屏幕的Dialog显示在Frame中央
    //可以灵活运用
    import java.awt.*;
    import java.awt.event.*;
    public class T implements ActionListener
    {
      Frame f;
      Button b;
      Dialog d;
      Toolkit toolkit;
      Dimension size;
      
      T()
      {
       f=new Frame();
       b=new Button("d");
       d=new Dialog(f,"test",false);
       b.addActionListener(this);
       toolkit=Toolkit.getDefaultToolkit(); 
       size=toolkit.getScreenSize();
       f.setSize(300,300); 
       f.setBounds((int)(size.getWidth()-f.getWidth())/2,(int)(size.getHeight()-f.getHeight())/2,f.getWidth(),f.getHeight());
       f.add(b);
       f.show();
      }
      public static void main(String[] arg)
      {
       T t=new T();
      }
      public void actionPerformed(ActionEvent e)
      {
       d.setSize(100,100);
       d.setBounds((int)(f.getX()+(f.getWidth()-d.getWidth())/2.0),(int)(f.getY()+(f.getHeight()-d.getHeight())/2.0),d.getWidth(),d.getHeight());
       d.show();
      }
     }
      

  3.   

    dabout.setLocationRelativeTo(f);是什么意思?
      

  4.   

    public void actionPerformed(ActionEvent e)
      {
       d.setSize(100,100);
       d.setBounds((int)(size.getWidth()-f.getWidth())/2,(int)(size.getHeight()-f.getHeight())/2,d.getWidth(),d.getHeight());
       d.show();
      }
     }
    对话框显示在屏幕的中间就可以了,因为你窗口也在屏幕中间,对话框自然就在窗口的中间了,不用和窗口联系太紧,如果你的窗口大小比对话框要小的时候会出现什么问题?