Java界面组件

来自CloudWiki
跳转至: 导航搜索

Swing 组件

在前面的章节中,我们设计了程序的窗体界面:Java界面容器

Java10-1.png

下面我们添加Swing组件

Swing 组件由javax.swing包提供,是内容丰富、功能强大的轻量级组件,如图所示:

Java9-5.png

需要注意的是,不可以把组件直接添加到Swing窗体中,应当把组件添加到Swing窗体所包含的一个称为内容面板的容器中。

常用Swing组件

教学方法:用Word布局

JLable组件

标签组件是用于显示文本信息、或图标、或二者兼而有之。JLabel组件不会对用户的输入发生反应,即,对JLabel组件不能编辑。标签组件可以将显示内容垂直或水平显示,通常默认文本信息的显示状态为水平。而图标的显示状态为垂直。标签组件一般起到提示作用。JLabel构造方法有三种:

  • JLabel(): 创建无图像并且其标题为空字符串的 JLabel。
  • JLabel(Icon image):创建具有指定图像的 JLabel 实例。
  • JLabel(String text, int horizontalAlignment):创建具有指定字符串和水平对齐方式的 JLabel 实例。

例如,下面代码创建文本标签和带图标的标签

Label labText=new JLabel(“用户名”); 
ImageIcon icon = new ImageIcon("image/greenflag20.gif"); 
JLabel labImage=new JLabel(icon);

应用:在我们的类UserInfo中添加两个私有JLabel变量,表示用户名和密码的标签

private JLabel labelUser=new JLabel("用户登录",JLabel.CENTER);
	private JLabel labelPwd= new JLabel("登录密码",JLabel.CENTER);//“登录密码”标签


JTextField组件

JTextField组件用于创建文本框。文本框是用来接受用的单行文本信息输入的区域。通常文本框用于接受用户信息或其他文本信息的输入。

构造方法

  • JTextField() : 构造一个新的 TextField。
  • JTextField(int columns):构造一个具有指定列数的新的空 TextField。
  • JTextField(String text) :构造一个用指定文本初始化的新 TextField。
  • JTextField(String text, int columns): 构造一个用指定文本和列初始化的新 TextField。

例如:

JTextField txtUserID=new JTextField(16);//创建列数为16的空文本框

常用方法

方法 说明

String getText()	获得文本域的中的文字
int getColumns()	返回此 TextField 中的列数。
void  setColumns(int columns) 	设置此 TextField 中的列数,需要重新布局,调用Jcomponent类中的revalidate()

应用:在我们的类UserInfo中添加一个JTextField私有变量表示文本域。

private JTextField txtUserID = new JTextField(16);//“登录账号”文本框

JPasswordField

PasswordField是JTextField的子类,是一种特殊的文本框,也是用来接受单行文本信息的输入的区域,但会用回显字符串代替输入的文本信息,典型的回显字符是星号(*)。

构造方法

  • JPasswordField():构造一个新 JPasswordField,使其具有默认文档、为 null 的开始文本字符串和为 0 的列宽度。
  • JPasswordField(int columns) :构造一个具有指定列数的新的空 JPasswordField。
  • JPasswordField(String text) “:构造一个用指定文本初始化的JPasswordField。
  • JPasswordField(String text, int columns): 构造一个用指定文本和列初始化的JPasswordField。

例如:

JPasswordField txtPassword=new JPasswordField(16); 

常用方法

方法	说明
void setEchoChar(char echo)	为密码域设置回显字符字符。
char[]  getPassword()	返回密码框中的文本

【注意】密码并不是以String的形式返回。


应用:在我们的类UserInfo中添加一个JPasswordField私有变量表示密码域。

private JPasswordField txtPassword=new JPasswordField(16);//密码框

JTextArea

JTextArea组件是文本区组件。它与JTextField一样能接受文本信息的输入和显示。但是与JTextField组件不同的是,JTextArea对象可以多行输入与显示,突破了JTextField的单行的限制。

构造方法

  • JTextArea(int rows, int columns) :构造具有指定行数和列数的新的空 TextArea。
  • JTextArea(String text) :构造显示指定文本的新的 TextArea。
  • JTextArea(String text, int rows, int columns):构造具有指定文本、行数和列数的新的 TextArea。

在创建TextArea时,应用中经常将文本区对象放入一个滚动窗格中,以使用滚动条功能,例如:

JTextArea ta = new JTextArea(10,10);
JScrollPane sp = new JScrollPane(ta);

常用方法

方法	说明
void append(String str)	将给定文本追加到文档结尾
void insert(String str,int pos)	将指定文本插入指定位置
void replaceRange(String str,int start,int end)	用给定的新文本替换从指示的起始位置到结尾位置的文本。
String getText()	返回TextArea中的内容
int getRows()	返回 TextArea 中的行数。
int getColoumns()	返回 TextArea 中的列数。

应用:我们将稍后用到这个组件

JButton组件

JButton是用来创建命令按钮。JButton对象具有这样的功能:当用户按下命令按钮,会激发一定的动作。JButton创建的按钮可以具有图标和文本信息的内容,通过它们可以有效地提示及帮助用户操作。 例如:

JButton button1 = new JButton(“姓名”);
ImageIcon ii = new ImageIcon(“java.gif”);
JButton button2 = new JButton(ii);
JButton button3 = new  JButton(“姓名”,ii);

应用:在我们的类UserInfo中添加两个个JButton私有变量表示按钮

private JButton btnLogon =new JButton("登陆");//登录按钮
	private JButton btnSet = new JButton("注册");//重置按钮


返回 Java程序设计