java图形化编程
转载
学习Java Swing图形化编程,我们首先要了解三个最基本的概念:顶层容器,控件,布局。
下面就来介绍一下这三个基本概念
1.顶层容器
什么是顶层容器?当我们使用Java进行图形编程的时候,图在哪里绘制呢?我们需要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,你也可以把它想象成一个窗口。顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。在Swing中,我们有三种可以使用的顶层容器,它们分别是:
·JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。
·JDialog:和JFrame类似,只不过JDialog是用来设计对话框。
·JApplet:用来设计可以在嵌入在网页中的Java小程序。
如果需要使用Swing制作一个窗口类程序,我们的代码看起来应该是这样:
import Javax.swing.*;
public class KyodaiUI extends JFrame {
……
}
2.控件
控件是构成应用程序界面的基本元素,按钮、文本框、进度条等,这些都是控件。控件(这里我们只讨论可视化控件)又可以分为容器控件和非容器控件。从字面意义上来理解,容器控件就是能包含其他控件的特殊控件,例如,Java中的JPanel控件就属于容器型控件,我们可以在JPanel中放置按钮、文本框等非容器控件,你甚至可以在JPanel中再放置若干个JPanel控件(值得注意的是,顶层容器也是容器型控件,每一个窗口应用程序中有且只能有一个顶层容器控件,换句话说,顶层容器不能包括在其他的控件中)。
Java中的容器控件有很多,除刚才提到的JPanel外,还有JTabbedPane、JScrollPane等,非容器控件有JButton、JLabel、JTextField等。如果你需要向某个容器型的控件中添加控件,你可以使用 add(Component comp) 方法来实现,如:
>JPanel panel = new JPanel();
JButton button = new JButton();
panel.add(button);
3.布局
什么是布局?布局是Java中用来控制控件排列位置的一种界面管理系统。使用过其他可视化编程开发语言的人在初次接触Java界面设计时,总会感觉到Java界面设计很别扭:居然没有提供所见即所得的设置控件坐标的方法!然而,事实证明,Java本身提供的布局管理系统也一样能够出色地完成我们的需要,而且在跨平台时表现得更有优势。
常用的布局有:
·BorderLayout:将界面分割为上下左右以及中间一块区域的管理系统,在BorderLayout布局中,最多你只能放5个控件,如果超过5个控件,建议还是选用其他的布局系统吧。
·GridLayout:GridLayout是将用户界面切割为棋盘一样的布局管理系统。如果我们要设计一个类似于Windows中自带的计算器软件,GridLayout无疑是最佳选择。
·FlowLayout:FlowLayout与上述两类布局管理系统不太一样,在FlowLayout中,你不必指定每个控件放在哪,你只需要把控件加入到FlowLayout中,FlowLayout就会根据你添加控件的顺序依次放置控件,如果空间不够,会自动换行。
四 总述:
Swing中所有的组件都是放到容器中,主要的容器包括:JFrame,JPanel,JWindow,JDialog,JPanle。JFrame是java的主框架,几乎所有的Java应用程序界面都是在主框架之中设计的。有些容器并非一层,而由几层嵌板组成,本文将会用到其中在个:拆分嵌板(JSplitPane),内容嵌板, 页签式嵌板(TabbedPane)
拆分嵌板:按指定的方向和方式拆分其内的两个子组件,记住一个拆分嵌板只能拆分两个子组件,如果想要拆分三个,大家自己先想一想办法。本节最后给出了答案。
内容嵌板: JFrame,Jwindow,Jdialog就是上面提到的有多层嵌板的容器,如果要在这些容器上面放置组件,必须放置在他们的内容嵌板(pane)上。我们通过函数getContentPane()可得到当前容器的内容嵌板。
页签式嵌板:这个嵌板如同卡片,在上面提供文件夹式的页签,当前只显示一页,如要进入下一页,只要点击上面的页签。
有些如JPanel是可以直接放置组件的容器。所以不需要使用嵌板。
如果要按自己的想法排列放在容器上的组件,我们必须使用到布局管理器(Layout)来进行管理。Java系统默认的布局管理器为边界管理器(BorderLayout)。它把版面分为五大块,中央区域(Center),顶端(North),底部(South),左侧(West),右侧(East),细心的你可能会发现我们的主界面就是用的这个布局架构。其他的几个布局管理器有:
流布局(FlowLayout):把其内的组件按从左到右,从上到下的流方式排列。
网格布局(GridLayout):把组件放置到布局中的设置的每个网格中
无序网格布局(GridBagLayout):类似于网格布局,但功能更强大也更复杂。能处理所有的布局。
java图形化编程的更多相关文章
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 二十七、Java图形化界面设计——容器(JFrame)
摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...
- Java图形化界面设计——容器(JFrame)
Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构 ...
- Sikuli:创新的图形化编程技术
Sikuli是一种使用截图进行UI自动化测试的技术.Sikuli包括sikul脚本,基于Jython的API以及sikuli IDE.Sikuli可以实现任何你可以在显示器上看到ui对象的自动化,你可 ...
- Java 图形化界面设计(GUI)实战练习(代码)
关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...
- 02 Java图形化界面设计——中间容器(Jpanel)
上一篇讲解了Jframe顶层容器,例子中生成了一个空的窗体,在实际编程过程中,一般很少将文本框.按钮等组件直接放在顶层容器中进行布局,大多数时候是通过布局管理器结合中间容器对组件进行布局设置. 1. ...
- 01 Java图形化界面设计——容器(JFrame)
程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Jav ...
- java 图形化工具Swing 创建工具条
通过JToolBar来创建工具条: Swing提供了JToolBar类来创建工具条,创建JToolBar对象时可以指定如下两个参数: (1),name: 该参数指定该工具条的名称. (2),orien ...
- java 图形化工具Swing 基本使用
Swing介绍: 使用Swing开发图形界面比AWT更加优秀,因为Swing是一种轻量级组件,它采用100% Java实现,不再依赖于本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平 ...
随机推荐
- System.TypeInitializationException: The type initializer for 'Mono.Unix.Native.Stdlib' threw an exception.
08-31 17:02:03: ### DEBUG ##########################System.TypeInitializationException: The type ini ...
- ztree
http://www.s u c h s o.com/projecteactual/ztree-jiaocheng-mvc-checkbox-quanxuan-demo-down.html http: ...
- openldap自定义schema
参考官方文档 13. Schema Specification http://www.verydemo.com/demo_c161_i74426.html https://oskb.wordpress ...
- 一个最小化的SpringBoot项目
项目结构 项目基于Maven管理,注意使用了父pom <parent> <groupId>org.springframework.boot</groupId> &l ...
- NHibernate系列文章四:NHibernate运行时监控
摘要 有三种方式可以实现NHibernate运行时监控,监控的信息包括:执行了的SQL语句.NHibernate执行过程.数据库性能分析.这对我们学习NHibernate有很大的帮助,在工作中也能快速 ...
- Nginx编译参数大全 configure参数中文详解
./configure --help--help 显示本提示信息--prefix=PATH 设定安装目录--sbin-path=PATH 设定程序文件目录--conf-path=PATH 设定配置文件 ...
- js 构造函数
//构造函数 //使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法 //当对象被实例化后,构造函数会立即执行它所包含的任何代码 function myObject(ms ...
- Unix网络编程 -- ubuntu下搭建编译环境( 解决unp.h 编译等问题)
1.安装编译器,安装build-essential sudo apt-get install build-essential 2.下载本书的头文件 下载unpv13e http://ishare.i ...
- Adobe Dreamweaver(DW)
下载破解版地址:http://www.frontopen.com/1179.html 详情地址:http://baike.baidu.com/link?url=8Jv88BJ-wXeyABAbYEMl ...
- redis与memcached比较
引用自:http://blog.csdn.net/e_wsq/article/details/23551799 最近需要用no-sql数据库来保存大量的数据,插入和查询都比较频繁,相对而言查询更加频繁 ...