BorderLayout布局,修改各个区域大小办法

摘自http://blog.csdn.net/zcsearching/article/details/50808446

BorderLayout控件大小的设置

使用BorderLayout时,中间的面板会随着窗体的变化而变化,其他区域的大小根据添加组件多少而变化。举个例子,现在想将一个面板固定到上边,高度为固定值,这是我们需要设置面板的高度。但是调用面板的 setSize()方法根本没有效果。调用 setMaximumSize()setMinimumSize()都没有用。

最后才发现应该调用的是 setPreferredSize()才能达到效果。

请看栗子。


 1 package com.wst.bj;
 2
 3 import java.awt.BorderLayout;
 4 import java.awt.Dimension;
 5 import java.awt.Toolkit;
 6
 7 import javax.swing.JButton;
 8 import javax.swing.JFrame;
 9 import javax.swing.JPanel;
10 import javax.swing.JTextArea;
11 import javax.swing.JTextField;
12
13 public class LayoutDemo {
14
15     public static void main(String[] args) {
16         new myFrame();
17     }
18 }
19
20 /**
21  * @author liuyan
22  *
23  */
24 class myFrame {
25
26     JFrame jframe = new JFrame("搜索");
27     JTextField textField = new JTextField(20);
28     JButton jButton = new JButton("转到");
29     JButton jButton2 = new JButton("转到2");
30     JButton jButton3 = new JButton("转到3");
31     JButton jButton4 = new JButton("转到4");
32     JTextArea textArea = new JTextArea();
33     JPanel jPanel = new JPanel(new BorderLayout(5,20));
34     JPanel jPanel2 = new JPanel(new BorderLayout());
35     JPanel jPanel3 = new JPanel(new BorderLayout());
36     JPanel jPanel4 = new JPanel(new BorderLayout());
37
38
39     /**
40      *
41      */
42     public myFrame() {
43
44         init();
45     }
46
47     /**
48      *
49      */
50     private void init()
51     {
52         jframe.setLayout(new BorderLayout());
53         jframe.add(jPanel2, BorderLayout.SOUTH);
54         jframe.add(jPanel3, BorderLayout.EAST);
55         jframe.add(jPanel4, BorderLayout.WEST);
56         jframe.add(jPanel, BorderLayout.NORTH);
57
58         jPanel.add(jButton, BorderLayout.EAST);
59         jPanel.add(textField, BorderLayout.CENTER);
60
61         jPanel2.add(jButton2);
62         jPanel3.add(jButton3);
63         jPanel4.add(jButton4);
64
65         jPanel.setPreferredSize(new Dimension(0, 150));
66         jPanel2.setPreferredSize(new Dimension(0, 150));
67         jPanel3.setPreferredSize(new Dimension(150, 0));
68         jPanel4.setPreferredSize(new Dimension(150, 0));
69
70         jframe.add(textArea, BorderLayout.CENTER);
71
72         jframe.setVisible(true);
73         FrameUtil.initFram(jframe, 500, 700);
74     }
75 }
76
77 class FrameUtil
78 {
79     public static void  initFram(JFrame f, int width, int height)
80     {
81         Toolkit toolkit = Toolkit.getDefaultToolkit();
82         f.setVisible(true);
83         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
84         Dimension d = toolkit.getScreenSize();
85         int x = (int)d.getWidth();
86         int y = (int)d.getHeight();
87         f.setBounds((x-width)/2, (y - height )/2, width, height);
88     }
89 }


 1 package com.wst.bj;
 2
 3 import java.awt.BorderLayout;
 4 import java.awt.Dimension;
 5 import java.awt.Toolkit;
 6
 7 import javax.swing.JButton;
 8 import javax.swing.JFrame;
 9 import javax.swing.JPanel;
10 import javax.swing.JTextArea;
11 import javax.swing.JTextField;
12
13 public class LayoutDemo {
14
15     public static void main(String[] args) {
16         new myFrame();
17     }
18 }
19
20 /**
21  * @author liuyan
22  *
23  */
24 class myFrame {
25
26     JFrame jframe = new JFrame("搜索");
27     JTextField textField = new JTextField(20);
28     JButton jButton = new JButton("转到");
29     JButton jButton2 = new JButton("转到2");
30     JButton jButton3 = new JButton("转到3");
31     JButton jButton4 = new JButton("转到4");
32     JTextArea textArea = new JTextArea();
33     JPanel jPanel = new JPanel(new BorderLayout(5,20));
34     JPanel jPanel2 = new JPanel(new BorderLayout());
35     JPanel jPanel3 = new JPanel(new BorderLayout());
36     JPanel jPanel4 = new JPanel(new BorderLayout());
37
38
39     /**
40      *
41      */
42     public myFrame() {
43
44         init();
45     }
46
47     /**
48      *
49      */
50     private void init()
51     {
52         jframe.setLayout(new BorderLayout());
53         jframe.add(jPanel2, BorderLayout.SOUTH);
54         jframe.add(jPanel3, BorderLayout.EAST);
55         jframe.add(jPanel4, BorderLayout.WEST);
56         jframe.add(jPanel, BorderLayout.NORTH);
57
58         jPanel.add(jButton, BorderLayout.EAST);
59         jPanel.add(textField, BorderLayout.CENTER);
60
61         jPanel2.add(jButton2);
62         jPanel3.add(jButton3);
63         jPanel4.add(jButton4);
64
65 //        jPanel.setPreferredSize(new Dimension(0, 150));
66 //        jPanel2.setPreferredSize(new Dimension(0, 150));
67 //        jPanel3.setPreferredSize(new Dimension(150, 0));
68 //        jPanel4.setPreferredSize(new Dimension(150, 0));
69
70         jframe.add(textArea, BorderLayout.CENTER);
71
72         jframe.setVisible(true);
73         FrameUtil.initFram(jframe, 500, 700);
74     }
75 }
76
77 class FrameUtil
78 {
79     public static void  initFram(JFrame f, int width, int height)
80     {
81         Toolkit toolkit = Toolkit.getDefaultToolkit();
82         f.setVisible(true);
83         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
84         Dimension d = toolkit.getScreenSize();
85         int x = (int)d.getWidth();
86         int y = (int)d.getHeight();
87         f.setBounds((x-width)/2, (y - height )/2, width, height);
88     }
89 }
时间: 2024-08-06 15:53:28

BorderLayout布局,修改各个区域大小办法的相关文章

java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小

代码如下: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; i

安卓布局修改基础常识篇之TextView属性

[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址:android:autoText 自动检测错误:android:bufferType 决定getText()返回的类型android:capitalize 指定使用类型android:cursorVisible 光标是否可见android:digits 数字输入android:drawableBot

oracle--查看表空间大小以及修改表空间大小

  一.修改表空间大小 解决以上问题的办法:通过增大表空间即可解决,如下: Sql代码   使用dba用户登陆 sqlplus  / as  sysdba; 执行如下命令: SQL > ALTER TABLESPACE SYSTEM ADD DATAFILE '/u01/app/oracle/oradata/test/system02.dbf' SIZE 20480M AUTOEXTEND OFF; 注意:其中'/u01/app/oracle/oradata/test/system02.dbf'

Java Swing界面编程(9)---BorderLayout布局管理器

package com.beyole.util; import java.awt.BorderLayout; import java.awt.Button; import javax.swing.JFrame; public class test7 { public static void main(String[] args) { JFrame frame=new JFrame("Crystal"); frame.setLayout(new BorderLayout(3,3));//

java Swing布局管理器之BorderLayout布局

BorderLayout边界布局管理器把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH.SOUTH.依次对应为:上北(NORTH).下南(SOUTH).左西(WEST).右东(EAST),中(CENTER),如下图所示. 特征: 可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER. 南.北位置控件各占据一行,控件宽度将自动布满整行.东.西和中间位置占据一行;若东.西.南.北位置无控件,则中间控件将自动布满整个屏幕.若东.西.南.北位置中无论哪个

Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑

Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑 本篇博客将分享本人在使用禅道是遇到的很多问题希望对大家有所帮助 有些问题只是发现了但现在的能力没办法解决希望大佬能提提意见给点帮助 参考文献:http://www.zentao.net/ 在此禅道的用途就不给大家多做解释了,直接进入正题:实验所需安装包:链接:https://pan.baidu.com/s/1UZaJeO5RFdlkPmSVlrdopw 密码:uame 注:官网上也可直接下载,在官网上有四个连接,国际版的大家可

Javascript---浏览器窗口可视区域大小

Javascript---浏览器窗口可视区域大小 在IE 9+,Chrome, Firefox.Opera,Safari中 浏览器窗口的内部高度   window.innerHeight 浏览器窗口的内部宽度   window.innerWindth 在所有浏览器都通用的JS方案   宽度 1 var w =document.documentElement.clientWidth 2 var w =document.body.clientWidth 高度 1 var w =document.do

Opencv 中图片像素操作的应用实例——计算图片某一种颜色区域大小所占比

对图片进行处理,其中图片像素的处理是基本的过程,包括对图片像素的遍历,对每一个像素的RGB三个通道的灰度值的获取等. 以下是基于opencv 的一个应用实例,即计算图片中黄色区域大小占整个图片大小的比例. 1 // computerPercentage.cpp: 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include<iostream> 6 #include<opencv2/opencv.hpp> 7 #in

修改HDFS块大小

环境:OS:Centos 6.5 x64 & Soft:Hadoop 1.2.1 1.查看当前块大小,默认64M. [[email protected] hadoop-1.2.1]$ bin/hadoop fs -stat "%o" ./in/test1.txt67108864 2.修改hdfs-site.conf配置文件,增加全局参数dfs.block.size. [[email protected] hadoop-1.2.1]$ cat conf/hdfs-site.xml