摘自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. 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅲ

    2.4.3 堆的定义 数据结构二叉堆能够很好地实现优先队列的基本操作.在二叉堆的数组中,每个元素都要保证大于等于另两个特定位置的元素.相应地,这些位置的元素又至少要大于等于数组中的两个元素,以此类推. ...

  2. python3-day2(基本回顾)

    1.作用域 1>外层变量可以被内层变更使用 2>内层变更不可以被外层使用 global nonlocal 2.对于Python,一切事物都是对象,对象基于类创建 3.练习 有如下值集合 [ ...

  3. Qt之模型/视图(委托)

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4. ...

  4. Hibernate框架增删改查测试类归为一个类

    package cn.happy.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org ...

  5. Redis + Jedis + Spring 实例(对象的操作)

        目录(?)[+] 不得不说,用哈希操作来存对象,有点自讨苦吃! 不过,既然吃了苦,也做个记录,也许以后API升级后,能好用些呢?! 或许,是我的理解不对,没有真正的理解哈希表. 一.预期 接上 ...

  6. 迭代 Iterate

    迭代:指按照某种顺序逐个访问列表中的每一项.比如:for语句 逐个访问: lst = ['q', 'i', 'w', 's', 'i', 'r'] for i in lst: print (i), # ...

  7. Vue2.0环境搭建和测试demo

    Vue2.0 推荐开发环境 Homebrew 1.0.6(Mac).Node.js 6.7.0.npm 3.10.3.webpack 1.13.2.vue-cli 2.4.0.Atom 1.10.2 ...

  8. jquery渐隐轮播

    html <body> <div id="banner"> <div id="banner_bg"></div> ...

  9. Biztalk2010安装及配置问题集

    在安装Biztalk2010时,碰到很多问题,有的是粗心有的也是比较bt的,如: 1)在win7 64下引入x86 的cab,有点粗心,幸亏给我报错版本不兼容(呵呵): 2)安装的时候 不知道为什么计 ...

  10. (转)在Eclipse中使用JUnit4进行单元测试

    原地址:http://blog.csdn.net/andycpp/article/details/1327147