Java Swing 绝对布局管理方法,null布局【图】
首先把相关容器的布局方式设为 setLayout(null);
然后调用组件的 setBounds() 方法
设置button的位置为(100,100) 长宽分别为 60,25
jButton.setBounds(new Rectangle(100, 100, 60, 25));
import java.awt.Container; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Toolkit; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Log extends JFrame { public static void main(String[] args) { Log log = new Log(); } private JButton btLog; private JTextField tfUser; private JPasswordField tfPwd; private JCheckBox pwdKeep; private JComboBox adminType; public Log() { super ( "固定资产管理系统" ); super .setSize( 380 , 292 ); super .setVisible( true ); super .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); centered( this ); btLog = new JButton( "登 录" ); btLog.setBounds( new Rectangle( 93 , 220 , 180 , 30 )); //参数分别是坐标x,y,宽,高 this .setLayout( null ); //设置布局管理器为空 this .add(btLog); tfUser = new JTextField(); tfUser.setBounds( new Rectangle( 73 , 115 , 220 , 25 )); this .add(tfUser); tfPwd = new JPasswordField(); tfPwd.setBounds( new Rectangle( 73 , 150 , 220 , 25 )); this .add(tfPwd); pwdKeep = new JCheckBox( "记住密码" ); pwdKeep.setBounds( new Rectangle( 68 , 185 , 110 , 25 )); this .add(pwdKeep); adminType = new JComboBox( new String[] { "普通职员" , "管理员" , "高级管理员" }); adminType.setBounds( new Rectangle( 183 , 185 , 100 , 25 )); this .add(adminType); } //布局居中方法 public void centered(Container container) { Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension screenSize = toolkit.getScreenSize(); int w = container.getWidth(); int h = container.getHeight(); container.setBounds((screenSize.width - w) / 2 , (screenSize.height - h) / 2 , w, h); } } |
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?