运用 Swing
一:Swing的组件:
组件(component,或称原件)就是你会放在GUI上的东西,这些东西用户可以看到并可以与之交互。
组件是可以嵌套的。
创建GUI的四个步骤:
1.创建window(JFrame): JFrame frame = new JFrame();
2.创建组件: JButton button = new JButton("Title");
3.把组件加载到frame上: frame.getContentPane().add(BorderLayout.EAST,button);
4.显示出来: frame.setSize(300,300);
frame.setVisible(true);
二:布局管理器(LayoutManager):
布局管理器是个与特定组件(大多数是背景组件)相关联的java'对象,布局管理器用来控制所关联组件上携带的其他组件。
布局管理器有几种不同的类型,每个背景组件都可以有自定义规则的布局管理器。例如,某个布局管理器会让所有的面板维持相同的大小,
而另一个布局管理器则会让组件自行设定大小但要求垂直对齐。
下面是一个嵌套布局的例子。
import java.awt.*;
import javax.swing.*; public class LayoutManagerTest{
public static void main(String[] args){
JFrame frame=new JFrame(); JPanel panelA=new JPanel();
JPanel panelB=new JPanel();
JButton buttonA=new JButton("Button A");
JButton buttonB=new JButton("Button B");
panelA.add(buttonA);
panelA.add(buttonB);
panelB.add(panelA);
frame.add(panelB); frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
那么布局管理器如何做决定呢?
基本按照下面的情景:
1.制作面板并加上两个按钮
2.面板的布局管理器会询问每个组件理想的大小(可能自定义了大小)应该是什么
3.面板的布局管理器以它的布局策略来决定是否尊重全部或部分按钮的理想
4.吧面板加到框架上
5.框架的布局管理器询问面板的理想尺寸
6.框架的布局管理器以它的布局策略来决定是否尊重全部或部分的面板理想
世界三大首席管理器:border,flow,box
BorderLayout:
这个管理器会将背景组件分成五个区域,每个被管理的区域只能放一个组件(当然你可以嵌套定义),这是框架默认的布局管理器。
FlowLayout:
这个管理器和文书程序的版面配置方式差不多。每个组件都会按照理想的大小呈现,并且会从左到右依次排列,放不下则换行。这是面板的默认布局。
BoxLayout:
和FlowLayout类似,但是他是按照垂直的方式排列(也可以水平),他不会自动换行,但是它会让你插入某种类似换行的机制来强制组件从新的一行开始排列
参考:Head First Java.
运用 Swing的更多相关文章
- 如何使用swing创建一个BeatBox
首先,我们需要回顾一些内容(2017-01-04 14:32:14): 1.Swing组件 Swing的组件(component,或者称之为元件),是较widget更为正确的术语,它们就是会放在GUI ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- Swing布局管理器介绍
创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...
- swing with transformjs
Antecedent Facebook made a HTML5 game long time ago. The opening animation is a piece of software th ...
- java swing 双人五子棋源代码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; impo ...
- 用swing也可以做出好看的界面
用Swing做出的例子:JavaFX做出的界面:后来又做出了自己编写的一套基于Synth的L&F,其与直接在代码中重绘某个组件不同,最大优点是具有可插拔性,即在不改变原有程序代码的情况下,用户 ...
- Java界面设计 Swing(1)
Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类 ...
- java基础 swing编程实战
1. 实现金山词霸,点击左右收缩 效果图: exmaple code : /* * 词霸 * */ package demo7; import java.awt.*; import java.awt. ...
- Swing中弹出对话框的几种方式_JOptionPane.showMessageDialog等详解
Swing中弹出对话框的几种方式_JOptionPane.showMessageDialog等详解 在swing中,基于业务的考量,会有对话框来限制用户的行为及对用户的动作进行提示. Swing中 ...
- Swing学习笔记1-----Swing组件类的层次
1. 从结构上划分 Swing 组件类分为两种,一种是JComponent类,一种是Windows类.其中windows类包含的是一些可以独立显示的组件,而JComponent类包含的是不可以独立显 ...
随机推荐
- 【Objective-C】NSDate详解及获取当前时间等常用操作
NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...
- SQL入门语句之SELECT和WHERE
一.SQL入门语句之SELECT SELECT语句用于从数据库表中获取数据,结果表的形式返回数据.这些结果表也被称为结果集 1.从数据库表中取部分字段 select 字段A,字段B from tabl ...
- MongoDB的导入导出(7)
导入/导出可以操作的是本地的mongodb服务器,也可以是远程的. 所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用户名 -p pas ...
- 根据google地图抓去全国信息- 抓去全国小区以及新建楼盘信息
本案例由于google每天每个账户能post20000次所以我们需要相对较长的时间来抓去google的数据信息. 主要思路:通过一定的zoom一个相对较大的zoom.我们尽可能的搜索我们的所有数据. ...
- 已解决:ECSHOP安装出现date_default_timezone_get()问题
今天在安装ECSHOP时遇到警告如下: Warning: date_default_timezone_get(): It is not safe to rely on the system's tim ...
- npm 安装不了模块
npm install 不能安装模块 先卸载npm,然后再重新安装 sudo npm uninstall npm -g 如果上面卸载不了,则进入到npm的安装目录(which npm): sudo m ...
- 【CentOS】又是一篇Shell
一.Shell 1.Shell脚本的格式 #!/bin/bash 或者是 #!/bin/sh 开头 ,这是用于解析脚本的工具 2.执行脚本的方法 (1)bash filename 或者是sh file ...
- 《DSP using MATLAB》示例Example5.14
代码: x1 = [1,2,2]; x2 = [1,2,3,4]; y = circonvt(x1,x2,4) n1 = 0:1:length(x1)-1; n2 = 0:1:length(x2)-1 ...
- 51nod p1201 整数划分
1201 整数划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2, ...
- html和css书写规范
HTML 规范 分离的标记.样式和脚本 结构.表现.行为分离 在可能情况下验证你的标记 使用编辑器验证你的标记是否正确,一般编辑器都自带有这个功能. 技术不支持的时候使用备胎,如canvas 编码格式 ...