Java Swing 网格麻袋布局举例

本文介绍了Java Swing中的网格麻袋布局,强调其相对于网格布局的灵活性,允许自定义单元格的宽度和高度。通过示例代码展示了如何使用网格麻袋布局创建美观的界面,并提醒读者注意代码中引用的外部函数AddChart_Tabbed和addAction,这两个函数分别用于添加图表和事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Java swing的布局方法有 网格布局,网格麻袋布局,流式布局,空布局等。

但最主要使用的肯定还是前两种布局方式,因为他们能够达到一定的响应式的效果。

网格布局的缺点是太死板,他的确可以工整的按顺序布局整个页面的元件,可是,太工整的代价的就是每一个网格的宽和长是不可以调整的。而网格麻袋布局的好处就是,我可以把整个页面分成你所规定的行数和列数,你还可以规定他们的宽和长。这样效果会更美观。

下面是我的测试代码,注意AddChart_Tabbed tab2函数是我没有导入的一个单独的函数,它的作用就是往里面添加了一个jfreechart图表,这里你可以自己替换一下。下方类似的还有一个addAction函数,也是一个外部自定义函数,它的作用就是添加相应事件,所以截取的时候注意要去掉这些不识别的部分。

整个网格麻袋布局的使用方法如下:

//总体监控曲线部分
		JPanel panel = new JPanel();
		panel.setBackground(Color.white);
		panel.setBounds(0, 0, 1366, 700);
		int wid=panel.getWidth();
		int hei=panel.getHeight();
		int wi=wid/20;
		int hi=hei/15;
		GridBagLayout gridBagLayout=new GridBagLayout(); 
		 gridBagLayout.columnWidths = new int[]{wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi};
	     gridBagLayout.rowHeights = new int[]{hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi};
	     tabWindow.addComponentListener(new ComponentAdapter() {
			@Override public void componentResized(ComponentEvent e){
			   int  wid=tabWindow.getWidth();
			   int  hei=tabWindow.getHeight();
			   int wi=wid/20;
			   int hi=hei/15;
			   gridBagLayout.columnWidths = new int[]{wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi,wi};
			     gridBagLayout.rowHeights = new int[]{hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi};
			}
		});
		panel.setLayout(gridBagLayout);
		GridBagConstraints gridBagConstraints=new GridBagConstraints();
		gridBagConstraints.fill=GridBagConstraints.BOTH;
		AddChart_Tabbed tab2 = new AddChart_Tabbed();
		AddChart_Tabbed tab3 = new AddChart_Tabbed();
		AddChart_Tabbed tab4 = new AddChart_Tabbed();
		AddChart_Tabbed tab5 = new AddChart_Tabbed();
		AddChart_Tabbed tab6 = new AddChart_Tabbed();
		
		ChartPanel cp2 = tab2.createPane();
		ChartPanel cp3 = tab3.createPane();
		ChartPanel cp4 = tab4.createPane();
		ChartPanel cp5 = tab5.createPane();
		ChartPanel cp6 = tab6.createPane();
		JLabel a=new JLabel("sanidansi",JLabel.CENTER);
		JButton b=new JButton("哈哈");
		cp2.setSize(500, 600);
		cp3.setSize(500, 600);
		cp4.setSize(500, 600);
		cp5.setSize(500, 600);
		cp6.setSize(500, 600);
		b.setSize(500, 600);
		a.setSize(500, 100);
		
		Font fnt = new Font("Serief",Font.BOLD, 20);
        a.setFont(fnt);                   
		
		gridBagConstraints.gridx=1;
        gridBagConstraints.gridy=0;
        gridBagConstraints.gridwidth=5;                                             
        gridBagConstraints.gridheight=1;            
        gridBagLayout.setConstraints(a, gridBagConstraints);
		
		gridBagConstraints.gridx=1;
        gridBagConstraints.gridy=1;
        gridBagConstraints.gridwidth=5;                                             
        gridBagConstraints.gridheight=4;            
        gridBagLayout.setConstraints(b, gridBagConstraints);
        
        gridBagConstraints.gridx=7;
        gridBagConstraints.gridy=0;
        gridBagConstraints.gridwidth=6;                                             
        gridBagConstraints.gridheight=6;            
        gridBagLayout.setConstraints(cp2, gridBagConstraints);
        
        
        gridBagConstraints.gridx=13;
        gridBagConstraints.gridy=0;
        gridBagConstraints.gridwidth=6;                                             
        gridBagConstraints.gridheight=6;            
        gridBagLayout.setConstraints(cp3, gridBagConstraints);
        
        
        gridBagConstraints.gridx=0;
        gridBagConstraints.gridy=8;
        gridBagConstraints.gridwidth=6;                                             
        gridBagConstraints.gridheight=6;            
        gridBagLayout.setConstraints(cp4, gridBagConstraints);
        
        
        gridBagConstraints.gridx=7;
        gridBagConstraints.gridy=8;
        gridBagConstraints.gridwidth=6;                                             
        gridBagConstraints.gridheight=6;            
        gridBagLayout.setConstraints(cp5, gridBagConstraints);
        
        
        gridBagConstraints.gridx=13;
        gridBagConstraints.gridy=8;
        gridBagConstraints.gridwidth=6;                                             
        gridBagConstraints.gridheight=6;            
        gridBagLayout.setConstraints(cp6, gridBagConstraints);
        	
        
        addAction(cp2,tab2);
		addAction(cp3,tab3);
		addAction(cp4,tab4);
		addAction(cp5,tab5);
		addAction(cp6,tab6);
		
		panel.add(a);
		panel.add(b);
		panel.add(cp2);
		panel.add(cp3);
		panel.add(cp4);
		panel.add(cp5);
		panel.add(cp6);
		

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值