最近做的一个程序是用Swing的,要求能够根据不同的分辨率自动调整界面上所有组件的大小。也就是说不是写死是1024×768,并且字体也需要根据大小自动变化。

我使用的工具是Netbeans,为实现动态变化,我使用了GridBagLayout。首先,新建一个类,继承JPanel。然后设置JPanel的Layout为GridBagLayout。当然,根据情况,可以和Html中的表格一样,Panel里面嵌套Panel,要点是每个Panel的Layout都设置为GridBagLayout(使用其他的Layout也可以实现这样的功能,但是个人感觉GridBagLayout最容易控制和使用)。

Layout的设置只是第一步,缺省情况下,GridBagLayout会把Panel中所有的组件排成一行,从左到右逐个排放。这时候,就要使用Customize Layout(定制布局)的功能,点击后,会再弹出一个窗口

在新的窗口中,可以拖动Panel里面的组件,象表格一样,组织安放所有的组件,相当方便。

这些步骤完成后,重要的两个属性是,填充(Fill),建议把所有组件的Fill属性,都选成Both,也就是水平和垂直方向都延伸填充。这样,Panel里面的所有组件会平铺开来,占满Panel的所有空间。那么,如何调整这些组件的大小呢?需要使用weightx和weighty这两个属性。这两属性的值使用0.0~1.0之间的小数,数越大,组件所占据的空间越大。

通过以上的设置,就可以实现组件大小随着Panel大小的变化而变化了。

那么,又如何实现字体的变化呢?这个只能通过编程实现了。但是initComponents函数里的代码都是自动生成的,如何添加自定义的代码呢。点击属性面板里的字体属性后面的小方框,在弹出的对话框里,点击高级按钮,勾选“生成初始化后的代码”,然后在文本框里,输入代码,这段自定义代码,会在每次自动生成代码的时候,添加到initComponents函数中。

java自动适应窗口大小_Java Swing界面如何动态调整大小(自适应)相关推荐

  1. java组件自适应窗口大小_java swing 窗口和控件自适应大小

    本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...

  2. java swing 知乎_java swing 界面开发

    Swing界面开发 Swing体系组件:JFrame(窗体),JButton(按钮),JTree(树形结构)等 java中的界面类: java.awt包:颜色,布局,监听器等 javax.swing包 ...

  3. java 单行文本_Java Swing界面编程(17)---单行文本输入组件:JTextField

    package com.beyole.util; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.J ...

  4. java scrollpane 设置透明_java swing 之 JScrollPane(滚动面板)的使用

    /** * java swing 之JScrollPane面板 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 * JScrollPane面板,JscrollP ...

  5. java关闭窗口按钮_java swing 使用按钮关闭窗口

    目的是给JButton添加点击操作,使指定JFrame窗口关闭. 网上不少说法是采用frame.dispose();的方法 但是采用frame.dispose();并没有使添加在frame上的wind ...

  6. java自动生成合同_Java 7和Java 8之间的细微自动关闭合同更改

    java自动生成合同 Java 7的try-with-resources语句和与该语句一起使用的AutoCloseable类型的一个不错的功能是,静态代码分析工具可以检测到资源泄漏. 例如,Eclip ...

  7. java自动推断类型_Java 7的类型推断

    java自动推断类型 每个优秀的程序员都喜欢编写简洁但有效且经过优化的代码. 类型推断是JDK 7中引入的一种方法,它肯定会为您带来更少键入的好处. 您以以下方式使用Java代码已有很长时间了. 但是 ...

  8. java 日历控件_java swing 日历控件怎么实现 最好是源码

    展开全部 源代码: e69da5e887aa3231313335323631343130323136353331333330363864//DatePicker.java package com.kx ...

  9. java实现弹球游戏_Java swing版弹球游戏源代码下载

    package 弹球; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionL ...

最新文章

  1. 洛谷P2672 推销员
  2. 第十五届全国大学生智能车全国总决赛获奖信息-东北赛区
  3. myeclipse mysql 乱码_MyEclipse与mysql增改查现乱码解决方案绝对有效
  4. python3怎么定义long_python3 整数类型PyLongObject 和PyObject源码分析
  5. 6 日期字符串转日期_山西省导游协会关于发放电子导游证的通知 (生成日期为2020年5月28日2020年6月3日)...
  6. iscsi 挂载教程_Windows Server 2008 R2 建立iSCSI存储的教程(图文)
  7. 关于jsp:include 动态引入的值传递问题(数据共享问题)
  8. 怎么样打印cxgrid过滤后的数据
  9. Java Stream流
  10. 通过5个概念 一文弄明白DAO
  11. 系统创建定时执行任务bat批处理删除指定N天前文件夹的文件
  12. 文本标注工具BRAT的安装与配置
  13. 数据分析基础篇---统计学基础
  14. python打印标签脚本
  15. 最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇
  16. 咩小饬的造轮子之路(彩票篇)
  17. sql1复习笔记10
  18. 如何扫描图片变成文字?手把手教你转换操作
  19. 怎样在一台电脑里访问其他电脑里的虚拟机
  20. spring注解详解,看完你就都全懂了!!

热门文章

  1. TypeScript数据类型
  2. 微软常用运行库合集 202206
  3. HTC ONE M7 ROOT后恢复 原始状态(保修)
  4. 女孩上中专学财经类号还是计算机好,女生学财经类专业好吗
  5. LintCode 183.木材加工
  6. PromSql的写法详解
  7. OpenStack平台-keystone与glance服务运维
  8. viper4android io错误,Go之Viper
  9. DM8 数据守护(Data Watch)搭建
  10. failed to accept an incoming connection: connection from 127.0.0.1