第9章 Java图形用户界面

  • 格式:doc
  • 大小:34.00 KB
  • 文档页数:4

第9章Java图形用户界面本章要点Java图形用户界面常用图形组件布局管理器9.1 Java图形用户界面简述用Java开发用户界面的程序是基于两套类:抽象窗口工具包(Abstrast Windowing Toolkit,AWT)和Swing。

这些类可以让开发者创建图形用户界面并从用户那里接收输入。

Swing和AWT包括了编写程序时要用的图形用户界面的全部内容。

通过Java窗口类,可以创建包括下面特点的GUI:按钮、复选框、标签和其他简单组件文本域、滑动条以及其他复杂的组件下拉菜单和弹出菜单窗口、帧、对话框和Applet窗口9.2 容器与基本控件当需要构建图形界面时,需要使用2个对象:组件和容器。

一个组件是用户界面中的一个独立的元素,一个容器是用与容纳其他组件的组件。

9.2.1 窗口窗口和窗体并不是一个概念,窗口是最基本的容器。

事实上,窗口没有边框、标题栏或菜单栏,而且不能调整其大小。

从面向对象角度来说,窗口是窗体和面板的超类。

Swing对于窗口的类是JWindows类,JWindows类继承了java.awt.Windows类。

有下面的方法:public void setLocation(int x,int y):设置窗口显示在(x,y)位置public void setSize(int width,int height):设置窗口的宽度(width)和长度(height)public void setVisible(boolean b):设置窗口是否显示,b为true时显示窗口,为false时则隐藏窗口。

9.2.2 窗体窗体是一个带有边框、标题栏、菜单的图形容器。

也是图形开发使用最多的一个容器之一。

JFrame继承了AWT中的Frame类。

下面是JFrame类常用的方法:public void setIconImage(Image image):设置窗体显示的图标public void setJMenuBar(JMenuBar menubar):加载窗体使用的菜单对象public void setLayout(LayoutManager manager):设置窗体使用的布局管理器public Container getContentPane():获取窗体面板容器public void setContentPane(Container contentPane):设置窗体使用的面板9.2.3 内部窗体Swing提供带桌面的MDI功能和内部窗体,其中桌面由JDesktopPane类实现,内部窗体由JInternalFrame类实现。

内部窗体在桌面上,并且可以在桌面内打开、关闭、最大化和图标化。

Swing提供一个DesktopManager类,用这个类来实现桌面上的内部窗体的特定界面样式行为。

9.2.4 面板面板是一个简单的容器类。

一个面板提供装载其它组件的空间,包括装载其它的面板。

面板的默认布局控制器是FlowLayout。

每一个窗口或窗体都包含一个JRootPane面板。

所添加的组件都是在面板上。

窗口和窗体是不直接加载基本组件的,可以说,面板是窗体和组件的桥梁。

JPanel主要构造器和方法:public JPanel():创建一个默认布局管理器的面板。

public JPanel(LayoutManager layout):创建一个指定布局管理器的面板,LayoutManager layout为指定的布局管理器。

public Component add(Component comp):在当前面板中添加一个组件public void add(Component comp,Object constraints):添加一个指定一个约束的组件。

这个约束可能是一个布局管理器中的位置9.2.5 菜单菜单是标题栏下面的一行文字部分。

菜单是应用程序中最常用的组件。

1. 构建菜单JMenu j = new JMenu("文件");2. 菜单事件使用ActiveEvent类中的getActionCommand()方法。

3. 菜单助记符和快捷键所谓助记符是快速让用户认识菜单,通常使用大写字母表示。

9.2.6 弹出式菜单JPopupMenu类实现弹出菜单。

JPopupMenu类不是继承JMenu类的而是从JComponent类继承过来。

9.2.7 工具栏工具栏通常位于菜单栏的下面,由一些图标组成。

可以点击工具栏上的按钮,得到快捷的功能。

Java中使用JToolBar类来描述一个工具栏提供这种功能。

9.2.8 按钮按钮是图形界面最常用的一个构件,在这之前的例子中也曾经使用过。

JButton常用的构造器和方法:public JButton() 定义无标签的按钮,用于不需要提示的按钮或多功能按钮。

public JButton(String lable) 定义指定标签的按钮,String label为指定标签。

public JButton(String text, Icon icon) 定义指定初始化标签和图标的按钮public String getLabel() 返回按钮的标签,若无标签,返回空。

public synchronized void setLabel(String label) 设置标签的标签为String lable。

public void setEnabled(Boolean b) 设置是否激活该按钮,true时激活。

public void setActionCommand(String actionCommand) 设置按钮的事件命令字符。

public void setVisible(boolean b) 设置是否在屏幕上显示,true是显示。

9.2.9 单行文本域Java中单行文本域使用JTextField类来描述,提供对单行文本的编辑。

JTextField类常用构造器和方法:public JTextField() 构造一个新的单行文本域。

public JTextField(String text) 构造一个有初始文字的单行文本域;public JTextField(int columns) 构造一个空的单行文本域,指定长度。

public void setDocument(Document doc) 设置输入文本内容。

public void setFont(Font f) 设置文本显示字体。

9.2.10 多文本域多文本域是用来编辑多行文本,JTextArea类的构造器及主要方法:JTextArea() 构造一个新的文本域JTextArea(Document doc) 构造一个指定文档模式的文本域JTextArea(int rows, int columns) 构造一个指定显示行数和宽度的文本域JTextArea(String text) 构造一个具有初始文字的文本域public void append(String str) 向文本域追加文字。

public void replaceRange(String str,int start,int end) 替换指定开始字节到结束字节之间的文字,str 要替换的文本。

public void setColumns(int columns) 设置文本域列宽。

public void setFont(Font f) 设置文本域内显示字体。

public void setRows(int rows) 设置文本域显示行数。

9.2.11 密码域密码域是用来处理输入密码的文本域。

JPasswordField 类常用的构造器和方法:public JPasswordField() 构造一个默认的密码域。

public JPasswordField(String text) 构造一个指定的密码域,text为初始文本。

public JPasswordField(int columns) 构造一个指定列数的密码域,columns为指定列宽。

public char[] getPassword() 获取密码域字节。

public void setEchoChar(char c) 设置显示替代字符。

9.2.12 标签标签是用来显示一段文字或是一个图片,标签无法接收键盘的信息输入,只能作为其它元件的提示。

public JLabel() 构造一个空白的JLabel组件。

public JLabel(Icon image) 构造一个含有Icon的JLabel组件,Icon的默认排列方式是CENTER. public JLabel(String text) 构造一个含有文字的JLabel组件,文字的默认排列方式是LEFT. public JLabel(String text,int horizontalAlignment) 构造一个含有文字的JLabel组件,并指定其排列方式。

public void setText(String text) 设置标签的文字。

public void setIcon(Icon icon) 设置标签的图标。

9.2.13 滚动条JScrollBar组件是一个用来实现手动滚动的滚动条。

虽然Swing另外提供的JScrollPane组件提供了文本的滚动,在大多数滚动情况已经足够用。

但是,有时为了性能或资源的考虑,还必须实现手动滚动。

9.3 布局管理器Java语言中,提供了布局管理器这个工具来管理组件在容器中的安放位置,而不是直接的使用设置组件的位置和大小的方式。

9.3.1 FlowLayout(流控制)FlowLayout类常用的方法:public FlowLayout() 创建一个流控制,对齐方式默认为居中,水平和垂直均为五格。

public FlowLayout(int align) 创建一个指定对齐方式的流控制,int align可定义值:FlowLayout.LEFT(左对齐)、Flowlayout.RIGHT(右对齐)、Flowlayout.CENTER(居中)。

public FlowLayout(int align,int hgap,int vgap) 创建一个新指定的流管理器,int align指定对齐方式,int hgap指定水平和垂直间隔距离。

public int getAlignment() 返回该流控制器的对齐方式。

public void setHgap(int hgap) 设置水平间隔距离。

public void setVgap(int vgap) 设置垂直间隔距离。

9.3.2 GridLayout(栅格控制)GridLayout类常用方法:public GridLayout(int rows,int cols) 创建一个指定行数的栅格控制,int rows,int cols是指定的行数和列数。