JAVA图形界面设计二Word下载.docx

上传人:b****5 文档编号:17596932 上传时间:2022-12-07 格式:DOCX 页数:36 大小:330.18KB
下载 相关 举报
JAVA图形界面设计二Word下载.docx_第1页
第1页 / 共36页
JAVA图形界面设计二Word下载.docx_第2页
第2页 / 共36页
JAVA图形界面设计二Word下载.docx_第3页
第3页 / 共36页
JAVA图形界面设计二Word下载.docx_第4页
第4页 / 共36页
JAVA图形界面设计二Word下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

JAVA图形界面设计二Word下载.docx

《JAVA图形界面设计二Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA图形界面设计二Word下载.docx(36页珍藏版)》请在冰豆网上搜索。

JAVA图形界面设计二Word下载.docx

box3=newJCheckbox("

蓝球"

add(box1);

add(box2);

add(box3);

}

}

6.1.2单选框

当在一个容器中放入多个选择框,且没有用ButtonGroup对象将它们分组,则可以同时选中多个选择框。

如果使用ButtonGroup对象将选择框分组,同一时刻组内的多个选择框只允许有一个被选中,称同一组内的选择框为单选框。

单选框分组的方法是先创建ButtonGroup对象,然后将希望为同组的选择框添加到同一个ButtonGroup对象中。

参见例6.2程序的面板子类Panel2的声明,组内有3个单选框。

6.1.3单选按钮

单选按钮(JRadioButton)的功能与单选框相似。

使用单选按钮的方法是将一些单选按钮用ButtonGroup对象分组,使同一组内的单选按钮只允许一个被选中。

单选按钮与单选框的差异是显示的样式不同,单选按钮是一个圆形的按钮,单选框是一个小方框。

JRadioButton类的常用构造方法有以下几个:

(1)JRadioButton(),用空标题构造单选按钮。

(2)JRadioButton(Strings),用标题s构造单选按钮。

(3)JRadioButton(Strings,booleanb),用标题s构造单选按钮,参数b设置选中是否的初始状态。

单选按钮使用时需要使用ButtonGroup将单选按钮分组,单选按钮分组的方法是先创建ButtonGroup对象,然后将同组的单选按钮添加到同一个ButtonGroup对象中。

参见例6.2程序的面板子类Panel1的声明,组内有3个单选按钮。

6.1.4选择项目事件处理

用户对选择框或单选按钮做出选择后,程序应对这个选择作出必要的相应,程序为此要处理选择项目事件。

选择项目事件处理程序的基本内容有:

监视选择项目单选的类要实现接口ItemListener,程序要声明和建立选择对象,为选择对象注册监视器,编写处理选择项目事件的接口方法itemStateChanged(ItemEvente),在该方法内用getItemSelectable()方法获取事件源,并作相应处理。

【例6.2】处理选择项目事件的小应用程序。

一个由3个单选按钮组成的产品选择组,当选中某个产品时,文本区将显示该产品的信息。

另有一个由3个选择框组成的购买产品数量选择框组,当选择了购买数量后,在另一个文本框显示每台价格。

importjava.applet.*;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

classPanel1extendsPanel{

JRadioButtonbox1,box2,box3;

ButtonGroupg;

setLayout(newGridLayout());

g=newButtonGroup();

box1=newJRadioButton(MyWindow.fName[0]+"

计算机"

false);

box2=newJRadioButton(MyWindow.fName[1]+"

box3=newJRadioButton(MyWindow.fName[2]+"

g.add(box1);

g.add(box2);

g.add(box3);

add(newJLabel("

计算机3选1"

));

classPanel2extendsPanel{

JCheckBoxbox1,box2,box3;

Panel2(){

setLayout(newGridLayout(1,3));

box1=newJCheckBox("

购买1台"

box2=newJCheckBox("

购买2台"

box3=newJCheckBox("

购买3台"

选择1、2或3"

classMyWindowextendsJFrameimplementsItemListener{

Panel1panel1;

Panel2panel2;

JLabellabel1,label2;

JTextAreatext1,text2;

staticStringfName[]={"

HP"

"

IBM"

DEL"

};

staticdoublepriTbl[][]={{1.20,1.15,1.10},{1.70,1.65,1.60},{1.65,1.60,1.58}};

staticintproduction=-1;

publicMyWindow(Strings){

super(s);

Containercon=this.getContentPane();

con.setLayout(newGridLayout(3,2));

this.setLocation(100,100);

this.setSize(400,100);

panel1=newPanel1();

panel2=newPanel2();

label1=newJLabel("

产品介绍"

JLabel.CENTER);

label2=newJLabel("

产品价格"

text1=newJTextArea();

text2=newJTextArea();

con.add(label1);

con.add(label2);

con.add(panel1);

con.add(panel2);

con.add(text1);

con.add(text2);

panel1.box1.addItemListener(this);

panel1.box2.addItemListener(this);

panel1.box3.addItemListener(this);

panel2.box1.addItemListener(this);

panel2.box2.addItemListener(this);

panel2.box3.addItemListener(this);

this.setVisible(true);

this.pack();

publicvoiditemStateChanged(ItemEvente){

if(e.getItemSelectable()==panel1.box1){

production=0;

text1.setText(fName[0]+"

公司生产"

text2.setText("

"

}elseif(e.getItemSelectable()==panel1.box2){

production=1;

text1.setText(fName[1]+"

}elseif(e.getItemSelectable()==panel1.box3){

production=2;

text1.setText(fName[2]+"

}else{

if(production==-1)return;

if(e.getItemSelectable()==panel2.box1){

text2.setText("

"

+priTbl[production][0]+"

万元/台"

}elseif(e.getItemSelectable()==panel2.box2){

+priTbl[production][1]+"

}elseif(e.getItemSelectable()==panel2.box3){

+priTbl[production][2]+"

}

}

publicclassExample6_2extendsApplet{

MyWindowmyWin=newMyWindow("

选择项目处理示例程序"

 

6.2列表和组合框

列表和组合框是又一类供用户程序的界面组件,用于在一组选择项目中选择,组合框还可以输入新的选择。

6.2.1列表

列表(JList)在界面中表现为列表框,是JList类或它的子类的对象。

程序可以在列表框中加入多个文本选项条目。

列表事件的事件源有两种:

一是鼠标双击某个选项,二是鼠标单击某个选项。

双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口方法是actionPerformed(ActionEvente)。

单击方法是选项事件,与选项事件相关的接口是ListSelectionListener,注册监视器的方法是addListSelectionListener,接口方法是valueChanged(ListSelectionEvente)。

JList类的常用构造方法:

(1)JList(),建立一个列表。

(2)JList(String[]list),建立列表,list是字符串数组,数组元素是列表的选择条目。

JList类的其他常用方法:

(1)getSelectedIndex(),获取选项的索引。

(2)getSelectedValue(),获取选项的值。

(3)getItemCount(),获取列表中的选项条数。

(4)setVisibleRowCount(intn),设置列表可见行数。

(5)setSelectedMode(intseleMode),设置列表选择模型。

选择模型有单选和多项两种。

单选:

ListSelectionModel.SINGLE_SELECTION。

多项:

ListSelectionModel.MULTIPLE_INTERVAL_SELECTION。

(6)remove(intn),从列表中的选项菜单中删除指定索引的选项。

(7)removeAll(),删除列表中的全部选项。

列表可以添加滚动条,列表添加滚动条的方法是先创建列表,然后再创建一个JScrollPane滚动面板对象,在创建滚动面板对象时指定列表。

以下代码示意为列表list2添加滚动条:

JScrollPanejsp=newJScrollPane(list2);

//为列表加滚动条

【例6.3】小应用程序有两个列表,第一个列表只允许单选,第二个列表允许多选。

importjavax.swing.event.*;

classMyWindowextendsJFrameimplementsListSelectionListener{

JListlist1,list2;

Stringnews[]={"

人民日报"

新民晚报"

浙江日报"

文汇报"

Stringsports[]={"

乒乓球"

篮球"

JTextAreatext;

MyWindow(Strings){

Containercon=getContentPane();

con.setBackground(Color.BLUE);

con.setLayout(newGridLayout(2,2));

con.setSize(200,50);

list1=newJList(news);

list1.setVisibleRowCount(3);

list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

list1.addListSelectionListener(this);

list2=newJList(sports);

list2.setVisibleRowCount

(2);

list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

list2.addListSelectionListener(this);

con.add(list1);

con.add(list2);

text=newJTextArea(10,20);

con.add(text);

publicvoidvalueChanged(ListSelectionEvente){

if(e.getSource()==list1){

text.setText(null);

ObjectlistValue=((JList)e.getSource()).getSelectedValue();

StringseleName=listValue.toString();

for(inti=0;

i<

news.length;

i++)

if(news[i].equals(seleName)){

text.append(seleName+"

:

被选中\n"

}elseif(e.getSource()==list2){

inttempList[]=list2.getSelectedIndices();

tempList.length;

text.append(tempList[i]+"

publicclassExample6_3extendsApplet{

列表示例"

6.2.2组合框

组合框(JComboBox)是文本框和列表的组合,可以在文本框中输入选项,也可以单击下拉按钮从显示的列表中进行选择。

组合框的常用构造方法有以下几个:

(1)JComboBox(),建立一个没有选项的JComboBox对象。

(2)JComboBox(JcomboBoxModelaModel),用数据模型建立一个JComboBox对象。

(3)JComboBox(Object[]items),利用数组对象建立一个JComboBox对象。

组合框的其他常用方法有以下几个:

(1)addItem(Objectob),向组合框加入选项。

(2)getItemCount(),获取组合框的条目总数。

(3)removeItem(Objectob),删除指定选项。

(4)removeItemAt(intindex),删除指定索引的选项。

(5)insertItemIndex(Objectob,intindex),在指定的索引处插入选项。

(6)getSelectedIndex(),获取所选项的索引值(从0开始)。

(7)getSelectedItem(),获取所选项的内容。

(8)setEditable(booleanb),设为可编辑。

组合框的默认状态是不可编辑的,需要调用本方法设定为可编辑,才能相应选择输入事件。

在JComboBox对象上发生的事件分为两类:

一是用户选定项目,事件响应程序获取用户所选的项目。

二是用户输入项目后按回车键,事件响应程序读取用户的输入。

第一类事件的接口是ItemListener;

第二类是输入事件,接口是ActionListener。

【例6.4】一个说明组合框用法的应用程序。

程序中声明的组合框子类实现ItemListener接口和ActionListener接口。

组合框子类的窗口中设置了一个文本框和一个组合框,组合框中有三个选择。

实现接口的监视方法将组合框的选择结果在文本框中显示。

publicclassExample6_4{

publicstaticvoidmain(Stringargs[]){

ComboBoxDemo1myComboBoxGUI=newComboBoxDemo1();

classComboBoxDemo1extendsJFrameimplementsActionListener,ItemListener{

publicstaticfinalintWidth=350;

publicstaticfinalintHeight=350;

StringproList[]={"

踢足球"

打篮球"

打排球"

JTextFieldtext;

JComboBoxcomboBox;

publicComboBoxDemo1(){

setSize(Width,Height);

setTitle("

组合框使用示意程序"

ContainerconPane=getContentPane();

conPane.setBackground(Color.BLUE);

conPane.setLayout(newFlowLayout());

comboBox=newJComboBox(proList);

comboBox.addActionListener(this);

comboBox.addItemListener(this);

comboBox.setEditable(true);

conPane.add(comboBox);

text=newJTextField(10);

conPane.add(text);

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==comboBox)

text.setText(comboBox.getSelectedItem().toString());

6.3菜单

有两种类型的菜单:

下拉式菜单和弹出式菜单。

本书只讨论下拉式菜单编程方式。

菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的。

菜单与JComboBox的相同之处是每次只可以选择一个项目。

在下拉式菜单或弹出式菜单中选择一个选项就产生一个ActionEvent事件。

该事件被发送给哪个选项的监视器,事件的意义由监视器解释。

6.3.1菜单条、菜单和菜单项

下拉式菜单通过出现在菜单条上的名字来可视化表示,菜单条(JmenuBar)通常出现在JFrame的顶部,一个菜单条显示多个下拉式菜单的名字。

可以用两种方式来激活下拉式菜单。

一种是按下鼠标的按钮,并保持按下状态,移动鼠标,直到释放鼠标完成选择,高亮度显示的菜单项即为所选择的。

另一种方式是当光标位于菜单条中的菜单名上时,点击鼠标。

在这种情况下,菜单会展开,且高亮度显示菜单项。

一个菜单条可以放多个菜单(JMenu),每个菜单又可以有许多菜单项(JMenuItem)。

例如,Eclipse环境的菜单条有File、Edit、Source、Refactor等菜单,每个菜单又有许多菜单项。

例如,File菜单有New、OpenFile、Close、CloseAll等菜单项。

向窗口增设菜单的方法是:

先创建一个菜单条对象,然后再创建若干菜单对象,把这些菜单对象放在菜单条里,再按要求为每个菜单对象添加菜单项。

菜单中的菜单项也可以是一个完整的菜单。

由于菜单项又可以是另一个完整菜单,因此可以构造一个层次状菜单结构。

1.菜单条

类JMenubar的实例就是菜单条。

例如,以下代码创建菜单条对象menubar:

J

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1