Java——创建简单的用户界面
来源:互联网 发布:mac yy服务器连接错误 编辑:程序博客网 时间:2024/05/16 04:50
创建简单的用户界面
Java通过使用Swing来支持可视化的软件,Swing是Java类的集合,它可以表示所有不同的按钮、文本框、滑块,以及可以成为GUI一部分的其他组件,同时还包括了可以从上述组件中接收用户输入的类。
1、Swing和抽象窗口工具包
Java是一种跨平台语言,使用它可以为很多不同的操作系统编写程序,因此其图形用户软件必须是灵活的,不仅能够支持Windows和Mac窗口风格,还必须能够盲足其他平台的要求。
在Java中,使用两组类来开发程序的用户界面:Swing和抽象工具包(Abstract Windowing Toolkt , AWT)。这些类让你能够创建图形用户界面以及接受用户输入。
Swing提供了编写使用图形界面的程序所需要的一切。使用Java的用户界面类,可以创建包括下述元素的GUI:
按钮、复选框、标签和其他简单组件;
文本框、滑块和其他复杂组件;
下拉菜单和弹出菜单;
窗口、框架、对话框和applet窗口。
2、使用组件
在Java中,图形用户界面的每部分都由Swing包中的一个类表示。对于按钮,是JButton类、窗口是JWindow类、文本框是JtextField类等。
组织图形用户界面时,需要使用两类对象:组件和容器。组件是用户界面中的独立元素,如按钮或滑块;容器则是用于容纳其他组件的组件。
创建界面的第一步是创建能够容纳组件的容器。在应用程序中,该容器通常是窗口或框架。
1)、窗口和框架
窗口和框架是能够在用户界面上显示,并可以容纳其他组件的容器。这些容器分别是使用Swing包中额 JWindow和JFrame类创建的。创建前需要导入javax.swing.*包,当然现在的开发软件都自动添加。
一种在Java应用程序中使用框架的方法是,将应哦也难怪程序声明为JFrame的子类,这样应用程序将继承作为框架所需的行为。创建框架时必须在框架的构造函数中执行几种操作:
调用超类JFrame的构造函数;
设置框架的标题;
设置框架的大小;
设置框架的外观;
定义用户关闭框架时应执行的操作。
还必须显示框架,除非由于某种原因,在应用程序开始运行时不显示框架。
所有这些操作都可以在框架的构造函数中完成。
当使用Swing创建了图形用户界面时,可以对它的外观进行自定义,从而控制按钮和其他组件的显示方式和行为。Java7中引用了增强的外观,名为Nimbus,当其在类中使用时,必须先启用。通过调用Swing包中的UIManager类的setLookAndFeel()方法可以设置我外观。下面来看一个完整的实例:
public class JavaApplication1 extends JFrame{ public JavaApplication1() { setTitle("使用setTile可以指定窗口的名称"); setLookAndFeel(); setSize(300, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } private void setLookAndFeel() { try { UIManager.setLookAndFeel("som.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Exception e) { } } public static void main(String[] args) { JavaApplication1 application1 = new JavaApplication1(); }}
2)、按钮
JButton和其他组件一样,也位于java.awt.swing包中。Jbutton对象是一个可以单击的按钮,其标签描述了单击按钮的结果。该标签可以使文本、图像或两者的组合。下面的语句创建一个名为onButton的JButton对象,并将其标签设置为OK:
JButton okButton = new JButton(“OK”);
创建好JButton等组件后。应调用add()方法将其加入到容器中:
add(okButton);
在容器中添加组件时,不需要致命组件在容器中显示的位置,组件的布局由被称为布局管理器的对象决定。最简单的布局管理器是FlowLayout类,它位于java.awt中。
要让容器使用特定不布局管理器,必须首先创建该布局管理器的对象。使用下面的语句创建FlowLayout对象:
FlowLayout fl = new FlowLayout();
创建好后,调用其setLayout()方法将其管理器同容器关联起来,该方法将布局管理器对象作为唯一的参数:
Pane.setLayout(flo);
这条语句将flo对象指定为容器pane的布局管理器。
接下来要创建的应用程序为Playback类,它可以显示一个包含3个按钮的框架:
public class Playback extends JFrame{ public Playback() throws HeadlessException { super("这是Playback类"); setSize(225 , 80); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FlowLayout flowLayout = new FlowLayout(); setLayout(flowLayout); JButton button1 = new JButton("开始"); JButton button2 = new JButton("停止"); JButton button3 = new JButton("暂停"); add(button1); add(button2); add(button3); setVisible(true); } public static void main(String[] args) { Playback playback = new Playback(); }}
3)、标签和文本框
Jlable组件显示用户不能修改的休息,这种信息可以是文本、图形或两者的组合。这些组件常用于标识界面中的其他组件,因此而得名。
JTextField组件是用户可以输入单行文本的区域。创建时可以设置其宽度。
下面的语句创建一个JLable组件和一个JTextField对象,并将它们加入到容器中:
JLabel jLabel = new JLabel("网页地址" , JLabel.RIGHT); JTextField jTextField = new JTextField(20); add(jLabel); add(jTextField);
对象包含的文本可使用方法getText()来获取,使用setText()来设置:
String str = jLabel.getText();
jLable.setText(“小武灵灵”);
4)、复选框
JcheckBox组件由文件和方框组成,用户可以选中它。下面的语句创建了一个JcheckBox对象,并将其加入到容器中:
JCheckBox checkBox = new JCheckBox("要不要选中我啊?" , true);
add(checkBox);
第二个参数设置复选框是否默认选中
JCheckBox可以单个显示,也可以编成组。在一组复选框中不能同时选中多个。要使JCheckBox对象成为某个组的一部分,必须创建一个ButtonGroup对象,如下:
5)、组合框
JComboBox组件是一个弹出式选择列表,也可以设置成能够接收文本输入。在这种情况下,用户可以使用鼠标选中列表项,也可以使用键盘来输入文本。组合框有点像一组复选框,但在没有打开列表时,只能看见其中的一个选项。
要创建JcomboBox对象,必须在创建这种对象后加入每个选项,如下所示:
JComboBox comboBox = new JComboBox();
for (int i = 0; i < 10; i++) {
comboBox.addItem("第" + (i+1) + "项");
}
add(comboBox);
要让JComboBox能接收文本输入,必须使用true参数调用其setEditable()方法:
comboBox.setEditable(true);
6)、文本区域
JtextArea组件允许用户输入多行文本,你可以指定该组件的宽高。下面的语句创建一个JTextArea组件,其宽度大约为40个字符,高度为8行:
JTextArea textArea = new JTextArea("文本框一共5行6列", 5, 6);
add(textArea);
文本区域组件的行为可能与读者预期的不同:用户达到文本区域底部时,它自动增大,文本区域的底部和右边无滚动条。要实现类似于其他窗口软件中的文本区域,必须将文本区域放在被称为滚动窗格的容器中,这个将在以后讲到。
7)、面板
面板是使用Swing中的JPanel类创建的。JPanel对象是可以再Swing界面中使用的最简单的容器,用于将显示区域划分成不同的容器组。将显示区域分成几部分后,可以采用不同的规则来组织每个部分。
JPanel panel = new JPanel();
add(panel);
当需要在界面中包含绘画区域时,也可以使用面板。JPanel的另一种用途是,用于创建可加入到其他类中的组件。
3、创建自己的组件
面向对象编程的一个主要优点是,能够在不同的项目中重用类。下面我们将创建一个特殊的面板组件,可在其他Java程序中重用它,该组件名为ClockPanel,是JPanel的子类,代码如下:
ClockPanel.java
public class ClockPanel extends JPanel{ public ClockPanel() { super(); String currentTime = getTime(); JLabel time = new JLabel("当前时间是:"); JLabel current = new JLabel(currentTime); add(time); add(current); } final String getTime() { String time; Calendar now = Calendar.getInstance(); time = now.get(Calendar.YEAR) + "年" + now.get(Calendar.MONTH) + "月" + now.get(Calendar.DAY_OF_MONTH) + "日" + now.get(Calendar.HOUR_OF_DAY) + "时" + now.get(Calendar.MINUTE) + "分" + now.get(Calendar.SECOND) + "秒"; return time; }}
ClockFrame.java
public class ClockFrame extends JFrame{ public ClockFrame() throws HeadlessException { super("创建自定义组件"); setSize(500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FlowLayout layout = new FlowLayout(); setLayout(layout); ClockPanel clockPanel = new ClockPanel(); add(clockPanel); setVisible(true); } public static void main(String[] args) { ClockFrame clockFrame = new ClockFrame(); }}
我们发现getTime()方法带有final关键字,这是因为其可以防止它被子类中的方法覆盖。这对GUI组件来说是必须的。
- Java——创建简单的用户界面
- Java——创建复杂的用户界面
- Training--创建简单的用户界面
- 创建一个简单的用户界面
- Android官方教程翻译(3)——创建一个简单的用户界面
- Android Training - 创建一个简单的用户界面
- 1.3 创建一个简单的用户界面
- 创建简单用户界面
- 简单的图形用户界面—简单计算器的实现
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
- Java 图形用户界面 树形菜单的创建
- 一种简单的图形用户界面-Java
- Java——用户界面的布局
- Java——用户界面的布局
- Java——用户界面的布局
- Flex 快速入门:构建简单的用户界面 创建状态
- Android教程学习1-创建一个简单的用户界面
- 《OC基础教程》读书笔记5-创建简单的用户界面
- Android 控件最上层显示方法
- POJ 2239 Selecting Courses (二分匹配)
- 树的遍历
- 原创:servlet技术实现用户名唯一的验证处理详解
- Android实现获取系统应用列表
- Java——创建简单的用户界面
- 1041. Be Unique
- Firmware 加载原理分析
- Java初始化次序
- DB2数据库备份还原
- 20130313日报
- JavaScript-仿QQ窗口抖动
- mysql innodb数据库的优化
- 支付宝开放平台API(集分宝接口新上线!)