运用 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类包含的是不可以独立显 ...
随机推荐
- js指定分隔符连接数组元素join()
指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...
- 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库
获取Sqlite 1.可以用NuGet程序包来获取,它也会自动下载EF6 2.在Sqlite官网上下载对应的版本:http://system.data.sqlite.org/index.html/do ...
- UML大战需求分析——阅读笔记02
类图是理解面向对象思想的强有力工具,也是业务概念模型分析中最常用的一种UML图.对开发人员来说,并不是对每一个业务流程都很熟练,在客户那里传达过来的需求资料中,有很多术语会把思绪搞晕,他们之间错综复杂 ...
- AngularJS Select(选择框)
AngularJS 可以使用数组或对象创建一个下拉列表选项. 使用 ng-option 创建选择框 在 AngularJS 中我们可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和 ...
- IIS服务器允许跨域配置
<configuration> <system.webServer> <httpProtocol> <customHeaders> <add na ...
- C#三级联动
1.运用ComboBox的控件建立效果,如右图: 2.建立三个表,第一个Province表: PID,PName;第二个为city表: CId,CName,PId;第三个为coun表:CounID,C ...
- What is a Database Trigger?
Link: http://www.essentialsql.com/what-is-a-database-trigger/ Copy... What is a Database Trigger? A ...
- JavaScript使用接口
在经典的Java面向对象语言中,可以用关键字interface来定义接口,用implement来实现接口,而JavaScript虽然也是面向对象语言,但是它并没有内置这些,不过由于JavaScript ...
- [Leetcode] Decode Ways
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...
- PHP-Redis扩展使用手册(一)
//初始化redis实例 $redis = new Redis(); /* connect . open 链接redis * @param string host redis服务器地址 * @para ...