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

BorderLayout控件大小的设置

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

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

请看栗子。

 

 package com.wst.bj;

 import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class LayoutDemo { public static void main(String[] args) {
new myFrame();
}
} /**
* @author liuyan
*
*/
class myFrame { JFrame jframe = new JFrame("搜索");
JTextField textField = new JTextField(20);
JButton jButton = new JButton("转到");
JButton jButton2 = new JButton("转到2");
JButton jButton3 = new JButton("转到3");
JButton jButton4 = new JButton("转到4");
JTextArea textArea = new JTextArea();
JPanel jPanel = new JPanel(new BorderLayout(5,20));
JPanel jPanel2 = new JPanel(new BorderLayout());
JPanel jPanel3 = new JPanel(new BorderLayout());
JPanel jPanel4 = new JPanel(new BorderLayout()); /**
*
*/
public myFrame() { init();
} /**
*
*/
private void init()
{
jframe.setLayout(new BorderLayout());
jframe.add(jPanel2, BorderLayout.SOUTH);
jframe.add(jPanel3, BorderLayout.EAST);
jframe.add(jPanel4, BorderLayout.WEST);
jframe.add(jPanel, BorderLayout.NORTH); jPanel.add(jButton, BorderLayout.EAST);
jPanel.add(textField, BorderLayout.CENTER); jPanel2.add(jButton2);
jPanel3.add(jButton3);
jPanel4.add(jButton4); jPanel.setPreferredSize(new Dimension(0, 150));
jPanel2.setPreferredSize(new Dimension(0, 150));
jPanel3.setPreferredSize(new Dimension(150, 0));
jPanel4.setPreferredSize(new Dimension(150, 0)); jframe.add(textArea, BorderLayout.CENTER); jframe.setVisible(true);
FrameUtil.initFram(jframe, 500, 700);
}
} class FrameUtil
{
public static void initFram(JFrame f, int width, int height)
{
Toolkit toolkit = Toolkit.getDefaultToolkit();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension d = toolkit.getScreenSize();
int x = (int)d.getWidth();
int y = (int)d.getHeight();
f.setBounds((x-width)/2, (y - height )/2, width, height);
}
}

 package com.wst.bj;

 import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class LayoutDemo { public static void main(String[] args) {
new myFrame();
}
} /**
* @author liuyan
*
*/
class myFrame { JFrame jframe = new JFrame("搜索");
JTextField textField = new JTextField(20);
JButton jButton = new JButton("转到");
JButton jButton2 = new JButton("转到2");
JButton jButton3 = new JButton("转到3");
JButton jButton4 = new JButton("转到4");
JTextArea textArea = new JTextArea();
JPanel jPanel = new JPanel(new BorderLayout(5,20));
JPanel jPanel2 = new JPanel(new BorderLayout());
JPanel jPanel3 = new JPanel(new BorderLayout());
JPanel jPanel4 = new JPanel(new BorderLayout()); /**
*
*/
public myFrame() { init();
} /**
*
*/
private void init()
{
jframe.setLayout(new BorderLayout());
jframe.add(jPanel2, BorderLayout.SOUTH);
jframe.add(jPanel3, BorderLayout.EAST);
jframe.add(jPanel4, BorderLayout.WEST);
jframe.add(jPanel, BorderLayout.NORTH); jPanel.add(jButton, BorderLayout.EAST);
jPanel.add(textField, BorderLayout.CENTER); jPanel2.add(jButton2);
jPanel3.add(jButton3);
jPanel4.add(jButton4); // jPanel.setPreferredSize(new Dimension(0, 150));
// jPanel2.setPreferredSize(new Dimension(0, 150));
// jPanel3.setPreferredSize(new Dimension(150, 0));
// jPanel4.setPreferredSize(new Dimension(150, 0)); jframe.add(textArea, BorderLayout.CENTER); jframe.setVisible(true);
FrameUtil.initFram(jframe, 500, 700);
}
} class FrameUtil
{
public static void initFram(JFrame f, int width, int height)
{
Toolkit toolkit = Toolkit.getDefaultToolkit();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension d = toolkit.getScreenSize();
int x = (int)d.getWidth();
int y = (int)d.getHeight();
f.setBounds((x-width)/2, (y - height )/2, width, height);
}
}

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

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

    代码如下: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JBu ...

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

    [天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址: ...

  3. Javascript进阶篇——(DOM—节点---获取浏览器窗口可视区域大小+获取网页尺寸)—笔记整理

    浏览器窗口可视区域大小获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: • window.innerH ...

  4. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  5. css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位

    css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位 height:100vh 一些只能vw, vh才能完成的应用场景: 1. 场景之:元素的尺寸限制 vw vh 主要是 ...

  6. 修改tomcat JVM 大小

    参考:https://blog.csdn.net/mynamepg/article/details/80591348 1.Xms表示初始分配给jvm的内存大小,-Xmx表示最大可分配给jvm的内存大小 ...

  7. Wpf修改控制的大小

    Wpf修改控制的大小 随窗体的改变而改变 在WINFORM中设置控件的Anchor属性就行了 在WPF中没有Anchor属性 但可以在布局中设置 相关属性实现同样的效果 相关属性 Horizontal ...

  8. JavaScript--DOM浏览器窗口可视区域大小

    浏览器窗口可视区域大小 获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法: 一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: •  window.inn ...

  9. 【博客美化】08.添加"扩大/缩小浏览区域大小" 按钮

    博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加Git ...

随机推荐

  1. 04747_Java语言程序设计(一)_第4章_数组和字符串

    面试题 字符串连接 public class Aserver { public static void main(String args[]) { // 字符串数据和其他数据+,结果是字符串类型 // ...

  2. Qt creator自定义编译运行步骤

    一直用Qt creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用. 用Qt creator开发一般的工程,是不用修改编译 ...

  3. [HTML5] Level up -- Display

    HTML5 Input type: Traditionally presentational tags, the i, b, em, and strong tags have been given n ...

  4. JavaScript ----------------- 原型式继承

    思想:借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型.为了达到这个目的,看看下面的实现方式 function object(o){ function F(){ } F.protot ...

  5. ASP.NET三层架构的分析

    BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Layer ASP.NET的三层架构(DAL,BLL,UI ...

  6. SQL server根据值搜表名和字段

    DECLARE @what varchar(800) SET @what='lll' --要搜索的字符串 DECLARE @sql varchar(8000) DECLARE TableCursor ...

  7. Funsion Charts 学习(一)

    学习官网: http://www.fusioncharts.com/explore/line-area-charts/ 参数: numvdivlines      number     垂直线显示vd ...

  8. emjio表情转json

    今天碰到了上传文字给服务端的时候emjio表情转成json就不对了 有大神帮忙解决了,记笔记记笔记--- #import "NSString+EncodedString.h" @i ...

  9. javaScript事件机制兼容【整理】

    [添加事件机制]  addEventListener  和  attachEvent [W3C] addEventListener('click' , function(){alert('Hello ...

  10. git add和被ignore的文件

    如果有如下的目录结构: workspace tree | --------------------- |                             | hello.c           ...