运用 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类包含的是不可以独立显 ...
随机推荐
- 给包含compid列且值为null ,表的行数据赋值--
IF OBJECT_ID ('dbo.spSelectColValue_In_DB') IS NOT NULL DROP PROCEDURE dbo.spSelectColValue_In_DB go ...
- vs2010 在64bits系统下编译
vs只有32bits的没有64bits. 本来程序没问题,后面一直报错 LIBCMTD.lib(close.obj) : error LNK2001 LNK2019 换了各种 MD/MT/MTD 都没 ...
- iOS之自定义控件
一.使用纯代码方式 initWithFrame:中添加子控件 layoutSubViews中设置子控件的fame 对外设置数据接口,重写setter方法给子控件设置数据显示 在的viewControl ...
- (转).NET开发人员必备的可视化调试工具(你值的拥有)
1:如何使用 1:点击下载:.NET可视化调试工具 (更新于2016-11-05 20:55:00) 2:解压RAR后执行:CYQ.VisualierSetup.exe 成功后关掉提示窗口即可. PS ...
- python 函数传递方式
在python中方法传递的参数到底是值传递还是引用传递? 1. 首先需要知道python中变量的类型:Python的变量分为可变变量和不可变变量. 针对于不可变的类型比如string int def ...
- 3Sum——leetcode
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- HDU5730 Shell Necklace(DP + CDQ分治 + FFT)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5730 Description Perhaps the sea‘s definition of ...
- BZOJ 1260&UVa 4394 区间DP
题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...
- POJ 3233 Matrix Power Series(矩阵等比求和)
题目链接 模板题. #include <cstdio> #include <cstring> #include <iostream> #include <ma ...
- BZOJ4562: [Haoi2016]食物链
Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 现在给你n个物种和m条能量流动关系,求其中的食物链条数. 物种的名称为从1到n编号 M条能量流动关系形如 a1 b1 a2 ...