java swing 怎么样才能精准布局之空布局管理器

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/86553458

用java swing作为软件的页面开发工具,页面上各个组件的位置都需要十分的精准,不然会影响美观!


java swing的布局管理器有

1、边框布局管理器(上下左右中)

2、流式布局管理器(自适应窗体大小,从左到右,从上到下)

3、网格布局管理器(行*列,组件都按照这样的位置排列)

4、卡片布局管理器(只显示一个面板,另一个面板隐藏)

5、盒子布局管理器(可以竖着排列,可以横着排列)

6、网格包布局管理器(没有固定的行列,一个组件可以占多个列,比较灵活)


但是,说到精准,以上的布局管理器总是没有那么人性化!

精准布局还是要用到空布局管理器!

1、 jf.setLayout(null);设置布局模式是null

2、采用jl.setBounds(0,0,690, 30);

setBounds(x,y,w, h);

x-代表组件左上角距离窗体左边的距离

y-代表组件左上角距离窗体上边的距离

w-组件的长度

h-组件的宽度

这个类似于html/jsp中的绝对定位


   以下是一个小栗子

package cn.com.swing;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class FirstPage {
/*author:命运的信徒
 * arm:程序的初始页面
 * date:2019/1/19
 */
	private static void firtPage(){
		//1.设置窗体大小和标题
		JFrame jf=new JFrame("矿井管理系统");
		jf.setPreferredSize(new Dimension(700, 700));
		//2.设置关闭窗口就是关闭程序
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//最精准的布局模式空布局
		jf.setLayout(null);
		//设置定位
		JLabel jl=new JLabel("矿井平硐位移监测系统",JLabel.CENTER);
		jl.setPreferredSize(new Dimension(680, 30));
		jf.add(jl);
		jl.setBounds(0,0,690, 30);
		jl.setFont(new Font("宋体", Font.BOLD, 24));
		jl.setForeground(Color.decode("#375a7f"));
		//菜单栏
		//新建一个菜单条
		JMenuBar jb=new JMenuBar();
		jf.add(jb);
		jb.setBounds(0,40, 690, 30);
		jb.setBackground(Color.decode("#65991a"));
		//新建一个菜单选项
		JMenu jmenu=new JMenu("首页");
		jmenu.setPreferredSize(new Dimension(100, 30));
		jmenu.setForeground(Color.white);
		jb.add(jmenu);
		//新建一个菜单项
		//新建一个菜单选项
		JMenu jmenu1=new JMenu("更多");
		jmenu1.setForeground(Color.white);
		jmenu1.setPreferredSize(new Dimension(100, 30));
		jb.add(jmenu1);
		//新建一个菜单项
		JMenuItem jm0=new JMenuItem("退出程序");
		JMenuItem jm1=new JMenuItem("使用教程");
		jmenu1.add(jm0);jmenu1.add(jm1);
		
		//3.设置窗体可见
		jf.pack();
		jf.setVisible(true);
	}
	public static void main(String[] args) {
		firtPage();
	}
}

效果图如下


      

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/86553458
今日推荐