Swing-setBounds()用法-入门

先看API:

public void setBounds(Rectangle r)

移动组件并调整其大小,使其符合新的有界矩形 r。由 r.x 和 r.y 指定组件的新位置,由 r.width 和 r.height 指定组件的新大小

参数: r - 此组件的新的有界矩形

从API来看,该方法的作用相当于setLocation()与 setSize()的总和。在实际使用时,需将容器的layout设置为null,因为使用布局管理器时,控件的位置与尺寸是由布局管理器来分配的。需要注意的是,这时必须手动指定容器的尺寸,因为空的布局管理器会将容器自身的PreferredSize清零,导致容器无法在GUI上显示。因此,如果容器在上级容器中使用布局管理器排列,那么需使用setPreferredSize(),如果容器在上级容器中仍然手动排列,那么对容器使用setBounds()即可。下面是测试demo:

import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/*
 * 2015-06-14
 */

public class setBoundsDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //设置panel的layout以及sieze
        JPanel jpanel = new JPanel();
        System.out.println("default PreferredSize is " + jpanel.getPreferredSize());
        System.out.println("default Size is " + jpanel.getSize());
        jpanel.setLayout(null);
        System.out.println("In null layout, the PreferredSize is " + jpanel.getPreferredSize());
        System.out.println("In null layout, the Size is " + jpanel.getSize());
        jpanel.setPreferredSize(new Dimension(400, 400));
        //添加按钮
        JButton button11 = new JButton("setBounds");
        JButton button12 = new JButton("setLocationAndSetSize");

        button11.setBounds(20, 20, 100, 100);
        button12.setLocation(250, 250);
        button12.setSize(100, 100);

        jpanel.add(button11);
        jpanel.add(button12);

        // 设置窗体属性
        JFrame frame = new JFrame("setBoundsDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(jpanel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

运行效果如下:

运行效果图

程序输出如下:

default PreferredSize is java.awt.Dimension[width=10,height=10]
default Size is java.awt.Dimension[width=0,height=0]
In null layout, the PreferredSize is java.awt.Dimension[width=0,height=0]
In null layout, the Size is java.awt.Dimension[width=0,height=0]

时间: 2024-10-10 00:30:00

Swing-setBounds()用法-入门的相关文章

iOS多线程开发之GCD 用法入门

我们知道,在iOS中进行多线程编程,主要有三种方式:[NSThread].[NSOperation]和[GCD].其中又以[GCD]为苹果官方最为推荐.本文将利用一个简单的demo,简述GCD的用法入门,以及本人对GCD的一点肤浅理解和学习心得. 先把参考文章列出: http://www.cnblogs.com/kenshincui/p/3983982.html http://www.cnblogs.com/sunfrog/p/3305614.html http://mobile.51cto.c

Java-Properties用法-入门

对于应用程序的配置,通常的做法是将其保存在独立的配置文件中,程序启动时加载,修改时保存.Java中Properties类就提供了这样一种机制,配置项以Key-Value的数据结构存储在文本文件中,扩展名为".properties".Properties的用法很简单,使用load(FileInputStream in)进行读取:使用getProperty(String key)来读取键值:使用put(String key, String value)添加键值对,使用store(FileO

AWK用法入门详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Swing-setMaximumSize()用法-入门

与setMinimumSize()一同讨论.顾名思义,这两个函数用于设置窗体的最大.最小值.然而测试发现,setMaximumSize()直接作用于JFrame时,无法实现其预定功能,setMinimumSize()功能正常. 测试代码如下: import java.awt.Dimension; import javax.swing.JFrame; /* * 2015-06-17 */ public class SetMaximumSizeDemo extends JFrame { public

linux中的awk用法入门详解(一)

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Swing-setBorder()用法-入门

注:本文内容转自:Swing编程边框(Border)的用法总结.内容根据笔者理解稍有整理. 函数说明: public void setBorder(Border border) 设置此组件的边框.Border 对象负责定义组件的 insets(直接对组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰.要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets).在单个组件中可使用复合边框来嵌套多个边框. 虽然从技术上

MongoDB 用法入门(windows)①

概述 大家对数据库肯定不陌生,肯定也有很多人用过MySQL,但是在用MySQL的时候各种建表,写表之间的关联让人非常头疼. MongoDB也是一种数据库,但是它不是用表,而是用集合来装数据的,我对这种数据储存方式很感兴趣.所以我根据MongoDB3.6的官方说明文档整理了MongoDB入门级用法,供自己开发时参考,相信对其他人也有用. 这是慕课网上MongoDB的课程:mongoDB入门篇 这是MongoDB官方说明文档:The MongoDB Manual 什么是MongoDB Mongodb

LESS 用法入门

本文旨在加深对 LESS 的理解和记忆,供自己开发时参考.相信对没有接触过 LESS 的程序员还是有用的,大佬绕路. 一. 安装和使用 LESS 1.1 安装 使用命令行安装 LESS npm install -g less 2.1 使用 less 有多种的使用方法,在这里我向大家介绍最常用的俩种方法. 第一种是直接在浏览器中使用: 去下载一个你要的 less.js  脚本: 创建一个文件来放置你的样式,比如说style.less 添加下面的代码到你的 HTML 的 <head> 中. <

Calabash-Android用法入门

上文介绍了如何在windows中安装calabash-android的测试环境,本文用一个实例来介绍calabash-android的基本用法. 本文所用的源代位于:https://github.com/bigconvience/HackerNews 下载完代码后,进入工程目录中,在命令行中输入:calabash-android gen,此命令会在工程目录下生成目录features,目录结构如下图: features |_support | |_app_installation_hooks.rb