java swing窗口放置屏幕中央问题思考

以前总是尝试各种方法都没有能把组件放到屏幕中央,只能用死办法,设置绝对坐标,但这样就失去了可移植性,而且繁琐.今天仔细思考了一番,终于被我找出问题所在.

注意以下部分成功的前提条件是:pack(),必须放在以下代码之前执行,否则pack()置于之后将会覆盖前面的位置设置,前面的代码就失效了.这就是一直折磨我的问题.

使主窗口居中一般使用下面的方法:

第一种方法        
     int windowWidth = frame.getWidth();                     //获得窗口宽
     int windowHeight = frame.getHeight();                   //获得窗口高       
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();             //获取屏幕的尺寸
     int screenWidth = screenSize.width;                     //获取屏幕的宽
     int screenHeight = screenSize.height;                   //获取屏幕的高
     frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//设置窗口居中显示

第二种方法
     Toolkit kit = Toolkit.getDefaultToolkit();    // 定义工具包
     Dimension screenSize = kit.getScreenSize();   // 获取屏幕的尺寸
     int screenWidth = screenSize.width/2;         // 获取屏幕的宽
     int screenHeight = screenSize.height/2;       // 获取屏幕的高
     int height = this.getHeight();
     int width = this.getWidth();
     setLocation(screenWidth-width/2, screenHeight-height/2);

03、第三种方法,是jdk1.4之后提供的方法
     setLocationRelativeTo(othercomponent);
    这种方法是设定一个窗口的相对于另外一个窗口的位置(一般是居中于父窗口的中间),如果为null则窗口就居于屏幕的中央。

成功的前提条件是:pack(),必须放在以下代码之前执行,否则pack()置于之后将会覆盖前面的位置设置,

关注我的新浪微博

java swing窗口放置屏幕中央问题思考的更多相关文章

  1. Java基础之创建窗口——使窗口在屏幕居中(TryWindow2/TryWindow3)

    控制台程序. 1.使用ToolKit对象在屏幕的中心显示窗口,将窗口的宽度和高度设置为屏幕的一半: import javax.swing.JFrame; import javax.swing.Swin ...

  2. Java Swing 窗体屏幕居中

    Java开发桌面程序用AWT或SWING,可以用设置主窗口位置,使主窗口居中一般使用下面的方法: 01.第一种方法              int windowWidth = frame.getWi ...

  3. winfrom 窗口起始位置为屏幕中央

    窗口起始位置为屏幕中央 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 获取鼠标触发事件光标位置 t ...

  4. Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现

    Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现 1. 建立悬浮窗口引用代码 1 1.1. 定义悬浮窗口,设置this主窗口引用,是为了在悬浮窗口中 ...

  5. atitit.窗口静听esc退出本窗口java swing c# .net php

    atitit.窗口静听esc退出本窗口java swing c# .net php 1. 监听esc  按键 1 1.1. 监听一个组件 1 1.2. 监听加在form上 1 2. 关闭窗口 2 1. ...

  6. C# WinForm设置窗口无边框、窗口可移动、窗口显示在屏幕中央、控件去边框

    1)窗口去除边框 在组件属性中FormBorderStyle设为None 2)窗口随着鼠标移动而动 添加引用using System.Runtime.InteropServices; 在初始化控件{I ...

  7. Java Swing 使用总结(转载)

    随笔转载自:此去经年ぢ 地址:http://www.cnblogs.com/FLFL/p/5369756.html 1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在 ...

  8. Java Swing intro

    Java Swing intro 如果有Android app开发经验,快速上手Swing不是问题.UI方面有相似的地方. 简单的几行代码就能抛出一个框框,记录一下操作过程 1.先显示一个框框 Era ...

  9. Java Swing实现一个简单而优美的记事本( 较详细注释 )

    Java Swing实现具有基本功能的记事本 目前实现了: 文件 新建 打开 保存 退出前保存询问 编辑 剪切 复制 粘贴 清除 撤销 格式 字体选择 字体颜色选择 帮助 关于 (样式采用了css与h ...

随机推荐

  1. 跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距

    跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距 This example program demonstrates the basic usage of a circular meas ...

  2. Asm Shader Reference --- Shader Model 2.x part

    ps部分 概览   Instruction Set                                       Name Description Instruction slots S ...

  3. 【JS】Intermediate2:Events and Callbacks

    event-driven :waiting for and reacting to events 2.page loads, user interacts (clicks, hovers, chang ...

  4. 【JS】Beginner9:Arrays

    1.Lists of any kind of data 2.Index to retreve an element from the array 0 3.[] .length; .pop()/push ...

  5. 跟我一起写Makefile:MakeFile介绍

    makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序. 首先,我们用一个示例来说明makefile的书写规则.以便给大家一个感性认识.这 ...

  6. C# Adomd Connection Analysis Service View Cube

    首先需要先引用 C:\Program Files\Microsoft.NET\ADOMD.NET\100\Microsoft.AnalysisServices.AdomdClient.dll      ...

  7. echarts 折线柱形上方显示自定义格式数据

    series:[ { name: '成单率', type: 'line', data: valueArr2, itemStyle: { normal: { label: { show:true, po ...

  8. git 设置

    系统乱码 项目中的编码统一设置为UTF-8编码. 设置系统的语言设置为 zh_UTF-8,把 export LANG=zh_CN.UTF-8 保存到~/.profile文件里. $ env|grep ...

  9. android学习资料

      在线查看android源码 1. https://github.com/android 2. http://grepcode.com/project/repository.grepcode.com ...

  10. netty Architectural Overview --reference

    reference from:http://docs.jboss.org/netty/3.1/guide/html/architecture.html 2.1. Rich Buffer Data St ...