
第四章 Java语言程序设计肖敏课件.ppt
42页第4章 实现客户端界面,本章学习要点:,了解Java图形界面编程方法;,Java Swing包的使用;,掌握实现聊天室客户端编程所必须的基本知识与技能;,4.1 需求分析,作为网络聊天室,要完成如下的功能:,实现一个用户聊天的软件运行界面通过这个界面用户应该能够输入聊天信息用户也应该能够看到所有其他用户发出的聊天信息4.2确定任务单 :,,任务:通过对需求的理解,经过分析,可以初步得出客户端界面大致如下图所示:,图4.1 聊天室客户端界面,4.3 任务:完成客户端窗口界面,一、确定步骤:,二、分析步骤:,1、确定登录窗口界面所用到的控件 预备知识,Swing是AWT的扩展,它提供了许多新的图形界面组件Swing组件以J开头,除了有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一些丰富的高层组件,如表格(JTable)、树(JTree)Java中常用的Swing组件如下表所示:,swing各组件功能及操作方法简介:,1)JFrame类创建窗口 JFrame可为应用程序构建主框架,JFrame类继承了Frame类。
Component :抽象类,归纳了所有图形用户界面上的组件 Containter:容器也是组件,特别的是容器中可以容放组件 构造方法,JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用 于获取和设置其 Content Pane 的JFrame的设置和显示方法,在JFrame窗口中加入组件,frame.getContentPane().add(childComponent),a)用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:,b)建立一个JPanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板,JPanel contentPane=new JPanel( ); //把其它组件添加到Jpanel中; frame.setContentPane(contentPane); //把contentPane对象设置成为frame的内容面板 或者: frame.getContentPane.add(contentPane);,2) JPanel概述 面板(JPanel)是一个轻量容器组件,用法与Panel相同,用于容纳 界面元素,以便在布局管理器的设置下可容纳更多的组件,实现容器 的嵌套。
JPanel, JScrollPane, JSplitPane, JInteralFrame都属于常用的中间容器,是轻量组件JPanel的缺省布局管理器是FlowLayout2) JPanel概述 构造方法:,public JPanel():创建一个FlowLayout布局的面板 public JPanel(LayoutManger layout):创建一个指定布局的面板,如:JPanel p1=new JPanel(new BorderLayout()); 说明:面板的默认布局是FlowLayout,不同于Container的默认3)标签(JLabel),构造方法 JLabel() 创建一个空标签 JLabel(String c) 指定标签文本 JLabel(String c,Icon ,Imageicon icon,JLabel.left/JLabel.right) 同时显示图标与文本 常用设置方法 设置标签显示文本:public void setText(String c) 取得标签显示文本:public String getText() 字体设置:public void setFont(Font f) 前景色设置: public void setForeground(Color c),按钮是窗口程序中最常用的一种组件,按钮提供用户快速启动某一 动作的方法,用户只需做的就是单击它们。
按钮由Button类创建,而 Button类是由Component类直接扩展的 按钮是一个常用组件,按钮可以带标签或图象,用户可通过按钮发 布命令4)按钮(JButton),构造方法:,JButton() JButton(Icon icon) //按钮上显示图标 JButton(String text) //按钮上显示字符 JButton(String text, Icon icon) //按钮上既显示图标又显示字符,5)单行文本框(JTextField),文本框是AWT的基本组件,文本框是用来在窗口中显示文字的矩形框,这些文字可以被用户编辑文本框可以用来输入文字、编辑文字、并显示所输入的文字、读取用户输入的文字文本框分为单行文本框和多行文本框构造方法:,JTextField(); //创建一个无任何内容的文本框对象 JTextField(int columns); //指定宽度 JTextField(String text); //指定初始化文本 JTextField(String text, int columns); //即指定宽度又指定文字信息,常用方法:,设置标签显示文本:public void setText(String c) 取得标签显示文本:public String getText() 字体设置:public void setFont(Font f) 前景色设置: public void setForeground(Color c),6)密码文本框(JPasswordField),密码输入框则只有一种 (JPasswordField)。
JPasswordField 是 JTextField 的子类,它们的主要区别是 JPasswordField 不会显示 出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 * 或者 #构造方法,JPasswordField() ; JPasswordField(Document doc, String txt, int columns) JPasswordField(int columns) JPasswordField(String text) JPasswordField(String text, int columns),其它方法,chargetPassword() chargetEchoChar() voidsetEchoChar(charc) 设置为了隐藏密码而显示的字符,默认为 * 字符也用 getText 方法和 setText 获得或者设置文本内容 (当然在用户界面上是隐藏的) 显示多行文本 构造方法: JTextArea() JTextArea(int rows,columns) 指定尺寸 JTextArea(String text) 指定初始化文本 JTextArea(String text,int rows, int columns),7)多行文本框(JTextArea),常用设置方法: public void setLineWrap(boolean wrap):换行状态设置 public void setRows(int rows) :设置行数 public void setColumns(int columns):设置列数 说明:颜色、字体、内容的设置同上(setForeground、setFont、 setText),JComboBox每次只能选择其中的一项,但是可编辑每项的内容,而且每项的内容可以是任意类,而不再局限于String。
8)组合框(JComboBox),作用 以下拉列表的方式给出若干选项,提供用户从中选择 下拉列表在单击箭头时才能浏览其中的项目构造方法 JComboBox():创建一个默认数据项的组合框 JComboBox(Object items):创建一个包含指定数组各元素的组合框常用方法 Object getSelectedItem():返回当前选择项 int getSelectedIndex():返回当前选择项的序数(从0开始) int getItemCount():返回组合框中的项数适用于数量较多的选项以列表形式显示,里面的项目可以由任意类型对象构成支持单选和多选9)列表(JList),作用 以多行列表的方式给出若干选项,提供用户从中选择构造方法: JList():创建一个内容为空的列表框 JList(Object items):创建一个包含指定数组各元素的列表框常用方法确定列表框尺寸: void setVisibleRowCount(int num):设置列表可见行数 void setFixedCellWidth(int width):设置列表框的固定宽度(像素) void setFixedCellHeight(int height):设置列表框的固定高度。
其它方法 Boolean isSelectedIndex(int index):序数为index的项是否被选中复选框提供简单的on/off开关,旁边显示文本标签10)复选框(JCheckBox),作用 给出若干选项,提供用户选择 复选框有两种状态:选中和未选中在一组复选框中,同时可以选择多项构造方法 JCheckBox() 无选项文本、无选中 JCheckBox(String text) 指定选项文本、无选中 JCheckBox(String text,boolean select),常用方法 isSelected():可测得复选框是否被选中单选框JRadioButton与AWT中的复选框组功能类似11)单选框(JRadioButton),作用 给出若干选项,提供用户选择其中一项 单选按钮同复选框一样也有两种状态:选中和未选中 多个单选按钮通常组织在一个按钮组中工作,此时只能选择其中一项构造方法 JRadioButton() 无文本、无选中 JRadioButton(String text) 指定选项文本、无选中 JRadioButton(String text, boolean selected) 指定选项文本,已选中,常用方法 isSelected():可测得单选按钮是否被选中,===================TestTextField.java=================== import java.awt.*; import javax.swing.*; public class TestTextField extends JFrame public static void main(String args) JFrame f=new JFrame(Java程序设计基础); Container c=f.getContentPane(); JPanel p=new JPanel(); c.add(p); ImageIcon icon=new ImageIcon(imageQ1.gif); //创建一个即有文字信息又有图像的标签对象,且图像位置设置在左边显示 JLabel l=new JLabel(JLabel举例,icon,JLabel.LEFT); //实例化两个文件标签 JLabel l1=new JLabel(用户名);,例6:请在窗体中添加一个标题标签,一个“用户名”标签,一个 “密码”标签,两个单行文本框,长度各为10。
JLabel l2=new JLabel(密 码); //实例化两个宽度均为10的JTextField对象 JTextField tf。
