相当简单........this.setLocationRelativeTo(null);原来的方法去获取屏幕坐标啊 自己计算啊 什么的 随意间搜了搜 就上面那一句话搞定哦 擦.......散散分分

解决方案 »

  1.   

    唉,我在大一,一开始学GUI时,把组件居中,就是用这条呀!
      

  2.   

    用绘图工具,swing这工具太烦人了
      

  3.   

    SWT  工具 
    swing 过时了。。
      我现在用的就是 SWT  感觉还不错
      

  4.   

    this.setLocationRelativeTo(null);的确可以解决
      

  5.   

    不错以前做过Swing的一些小窗口,真的很麻烦!希望oracle能早日解决
    还有,现在都说SWT/JFace很火,有时间研究一下
      

  6.   


    public class Test extends JFrame{
    /*
     *获得屏幕中央位置: 
     * */
    public Dimension getcenter(){
    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize=this.getSize();
    Dimension dim=new Dimension((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
    return dim;
    }//在构造方法中调用一下就可以了:
    public Test(){
         //设置中央位置显示:
    setSize(830,600);
    setLocation(this.getcenter().width,this.getcenter().height);
     }}
      

  7.   


    楼主你的方法好像不管用啊,求详解!!public class Test extends JFrame { /**
     * Launch the application
     * @param args
     */
    public static void main(String args[]) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    Test frame = new Test();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    } /**
     * Create the frame
     */
    public Test() {
    super();
                   //好像不管用
    setLocationRelativeTo(null);
    setBounds(100, 100, 500, 375);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //
    }}
      

  8.   

    public Dimension getcenter(){
    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize=this.getSize();
    Dimension dim=new Dimension((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
    return dim
    通过计算坐标就可设置出居中的界面
      

  9.   

    这一句保证不了各操作系统一致。
    我在Ubuntu/GNOME 下经常遇到
      

  10.   

    swing的确有这个 很简单  swt/jface可就得算了 
      

  11.   

    public Dimension getcenter(){
         Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
         Dimension frameSize=this.getSize();
         Dimension dim=new Dimension((screenSize.width-frameSize.width)/2,     (screenSize.height-frameSize.height)/2);
    return dim
      

  12.   

    任意Swing窗口显示到屏幕中间:
    [code=Jav]public static void showWindowToCenter(Window window) {
            // Center the window
            window.pack();
            showWindowToCenter(window, true);
        }    public static void showWindowToCenter(Window window, boolean needpack) {
            // Center the window
            if (needpack) window.pack();
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = window.getSize();
            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }
            window.setLocation((screenSize.width - frameSize.width) / 2,
                    (screenSize.height - frameSize.height) / 2);        window.setVisible(true);
        }[/code]
      

  13.   

    任意Swing窗口显示到屏幕中间:
    [code=Jav]public static void showWindowToCenter(Window window) {
            // Center the window
            window.pack();
            showWindowToCenter(window, true);
        }    public static void showWindowToCenter(Window window, boolean needpack) {
            // Center the window
            if (needpack) window.pack();
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = window.getSize();
            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }
            window.setLocation((screenSize.width - frameSize.width) / 2,
                    (screenSize.height - frameSize.height) / 2);        window.setVisible(true);
        }[/code]
      

  14.   


    public static void showWindowToCenter(Window window) {
            // Center the window
            window.pack();
            showWindowToCenter(window, true);
        }    public static void showWindowToCenter(Window window, boolean needpack) {
            // Center the window
            if (needpack) window.pack();
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = window.getSize();
            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }
            window.setLocation((screenSize.width - frameSize.width) / 2,
                    (screenSize.height - frameSize.height) / 2);        window.setVisible(true);
        }
      

  15.   

    显然你对Swing的了解有待提高, SWT/JFace绝对会是Java Application的另外一个噩梦
      

  16.   

    居中时,是要根据窗体的大小计算的
    你肯定是先setLocationRelativeTo(null);
    然后再setSize();的吧应该先setSize();
    之后再setLocationRelativeTo(null);
      

  17.   

    eclipe里面集成SWT builder的插件,直接拖拽,代码自动生成,你只需关注自己的业务逻辑即可。
      

  18.   

    很久没做桌面的应用了   记得那时候直接用myeclipse的插件  很强大
      

  19.   


    MainFrame frm = new MainFrame(); 
       //居中显示
    int w = (Toolkit.getDefaultToolkit().getScreenSize().width - frm.getWidth()) / 2;
    int h = (Toolkit.getDefaultToolkit().getScreenSize().height - frm.getHeight()) / 2;
    frm.setLocation(w, h); //悲剧的以前一直这么用
      

  20.   

    java.awt.Window类setLocationRelativeTo
    public void setLocationRelativeTo(Component c)设置窗口相对于指定组件的位置。 
    如果组件当前未显示,或者 c 为 null,则此窗口将置于屏幕的中央。中点可以使用 GraphicsEnvironment.getCenterPoint 确定。 如果该组件的底部在屏幕外,则将该窗口放置在 Component 最接近窗口中心的一侧。因此,如果 Component 在屏幕的右部,则 Window 将被放置在左部,反之亦然。 
    参数:
    c - 确定窗口位置涉及的组件
    从以下版本开始: 
    1.4 
    另请参见:
    GraphicsEnvironment.getCenterPoint()
      

  21.   

    强贴留个名,试了一下不错。不过觉得这个方法也挺好。public Dimension getcenter(){
    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize=this.getSize();
    Dimension dim=new Dimension((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
    return dim
    }
      

  22.   

    感觉你swing 学的不怎么样!这么简单的一个问题,不值得说出来,现在感觉国内swing页面设计没有开源的框架,人工写的比较稳定!但是很费时间,不过swing的页面做软件开发,还是很受欢迎的@!
      

  23.   

    引用:这种方法很好。了解设置窗口居中的原理就好。呵呵,个人之所见
    获取屏幕的高度、宽度,窗口的高度、宽度,相减 除以 2,再setLocation就哦了,
      

  24.   


    首先 哥鄙视你...
    我整C#的,偶然间有个Java项目就做了...
    我说出来是为了让更多不知道的人知道...
    这叫经验共享...
    再次 哥再鄙视你...
    最后 哥还是鄙视你...
      

  25.   

    this.setLocationRelativeTo(null);
    行!!!
      

  26.   

      int w = (Toolkit.getDefaultToolkit().getScreenSize().width - frm.getWidth()) / 2;
            int h = (Toolkit.getDefaultToolkit().getScreenSize().height - frm.getHeight()) / 2;
            frm.setLocation(w, h);