java 程序设计 实验五Word文档下载推荐.docx
- 文档编号:16661184
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:34
- 大小:124.34KB
java 程序设计 实验五Word文档下载推荐.docx
《java 程序设计 实验五Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java 程序设计 实验五Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
(2)掌握容器、布局管理器、普通组件的使用
(3)理解事件处理机制的工作原理
(4)掌握事件的添加和功能代码的编写方法
三实验过程
(1)问题分析
答:
名片的设计除了使用最基本的组件,如JButton,Jlist,JCheckBox,JTextField,JRadioButton,CardLayout以外,最主要的是逻辑事件的编写,在成功布局完见面后,就需要编写事件处理。
首先,由于是名片信息,保存着一个人的基本信息,所以可以用一个类来表示,如PersonInf类,其次,由于是多个人的信息,可以通过ArrayList来存放类;
其次就是当点击按钮的时候,正确添加和显示信息,此处用到cardLayout布局,可以减少界面的复杂度,在使用JList的时候,除了加滚动条意外,还需要listModel获取数据等。
(2)代码编写
(1)
publicclassPersonInf{
publicStringyourname;
publicStringaddress1;
publicStringaddress2;
publicStringemail;
publicStringsing=null;
publicStringdance=null;
publicStringweb=null;
publicStringfootball=null;
publicStringbasketball=null;
publicStringvolleyball=null;
publicStringxueshi=null;
publicStringshuoshi=null;
publicStringboshi=null;
publicStringqita=null;
publicPersonInf(Stringyourname,Stringaddress1,Stringaddress2,Stringemail,Stringsing,Stringdance,
Stringweb,Stringfootball,Stringbasketball,Stringvolleyball,
Stringxueshi,Stringshuoshi,Stringboshi,Stringqita){
super();
this.yourname=yourname;
this.address1=address1;
this.address2=address2;
this.email=email;
this.sing=sing;
this.dance=dance;
this.web=web;
this.football=football;
this.basketball=basketball;
this.volleyball=volleyball;
this.xueshi=xueshi;
this.shuoshi=shuoshi;
this.boshi=boshi;
this.qita=qita;
}
}
importjava.awt.BorderLayout;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JInternalFrame;
importjavax.swing.JRadioButton;
importjavax.swing.JLayeredPane;
importjavax.swing.JSplitPane;
importjavax.swing.BorderFactory;
importjavax.swing.Box;
importjavax.swing.DefaultListModel;
importjava.awt.Component;
importjavax.swing.border.SoftBevelBorder;
importjavax.swing.event.ListSelectionEvent;
importjavax.swing.event.ListSelectionListener;
importjavax.swing.border.BevelBorder;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
importjavax.swing.JButton;
importjavax.swing.border.EtchedBorder;
importjavax.swing.JFormattedTextField;
importjavax.swing.JSpinner;
importjavax.swing.JTable;
importjavax.swing.JList;
importjavax.swing.JScrollPane;
importjava.awt.Color;
importjavax.swing.JTextArea;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjava.util.ArrayList;
importjava.awt.event.ActionEvent;
importjava.awt.CardLayout;
publicclasscardextendsJFrame{
privateJPanelcontentPane;
publicJTextFieldnametext;
publicJTextFieldaddress1test;
publicJTextFieldaddress2test;
publicJTextFieldemailtest;
publicJButtonaddmessagebutton;
publicJButtonclearbutton;
privateJListlist;
//学历,爱好,添加新名片,查看名片的按钮
privateJRadioButtonrdbtnNewRadioButton_2;
privateJRadioButtonrdbtnNewRadioButton_3;
publicJRadioButtonrdbtnNewRadioButton_1;
publicJRadioButtonrdbtnNewRadioButton;
privateJPanelpanel_4;
//学历和爱好内的多选项
publicJCheckBoxsingbox;
publicJCheckBoxdancebox;
publicJCheckBoxwebbox;
publicJCheckBoxfootballbox;
publicJCheckBoxbasketballbox;
publicJCheckBoxvolleyballbox;
publicJCheckBoxxueshibox;
publicJCheckBoxboshibox;
publicJCheckBoxshuoshibox;
publicJCheckBoxqitabox;
ListSelectionModellistSelectionModel;
CardLayoutmycard;
//用于切换爱好和学历卡片
//定义默认的list模型
DefaultListModeldefaultListModel=newDefaultListModel();
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
cardframe=newcard();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
*Createtheframe.
//窗体的构造函数,用于设定相关组件并且添加事件,合理安排组建的位置
publiccard(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,464,338);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanelpanel=newJPanel();
panel.setBounds(0,0,459,316);
contentPane.add(panel);
panel.setLayout(null);
BoxhorizontalBox=Box.createHorizontalBox();
horizontalBox.setBounds(131,203,121,-41);
panel.add(horizontalBox);
BoxhorizontalBox_1=Box.createHorizontalBox();
horizontalBox_1.setBounds(0,0,1,1);
panel.add(horizontalBox_1);
JPanelpanel_1=newJPanel();
panel_1.setBounds(16,27,166,66);
panel_1.setBorder(BorderFactory.createLoweredSoftBevelBorder());
panel.add(panel_1);
rdbtnNewRadioButton_1=newJRadioButton("
查看已有名片"
);
rdbtnNewRadioButton_1.setSelected(true);
panel_1.add(rdbtnNewRadioButton_1);
rdbtnNewRadioButton_1.addActionListener(newcardseechangelistener());
rdbtnNewRadioButton=newJRadioButton("
添加新名片"
panel_1.add(rdbtnNewRadioButton);
rdbtnNewRadioButton.addActionListener(newcardseechangelistener());
ButtonGroupgroup2=newButtonGroup();
group2.add(rdbtnNewRadioButton_1);
group2.add(rdbtnNewRadioButton);
JPanelpanel_2=newJPanel();
panel_2.setBorder(newSoftBevelBorder(BevelBorder.LOWERED,null,null,null,null));
panel_2.setBounds(194,27,248,182);
panel.add(panel_2);
panel_2.setLayout(null);
JLabellblNewLabel=newJLabel("
姓名"
lblNewLabel.setBounds(34,13,61,16);
panel_2.add(lblNewLabel);
nametext=newJTextField();
nametext.setBounds(100,8,130,26);
panel_2.add(nametext);
nametext.setColumns(10);
address1test=newJTextField();
address1test.setColumns(10);
address1test.setBounds(100,36,130,26);
panel_2.add(address1test);
JLabellabel=newJLabel("
地址"
label.setBounds(34,41,61,16);
panel_2.add(label);
address2test=newJTextField();
address2test.setColumns(10);
address2test.setBounds(100,64,130,26);
panel_2.add(address2test);
JLabellabel_1=newJLabel("
联系地址"
label_1.setBounds(28,69,61,16);
panel_2.add(label_1);
JLabellabel_2=newJLabel("
电子邮件"
label_2.setBounds(28,97,61,16);
panel_2.add(label_2);
emailtest=newJTextField();
emailtest.setColumns(10);
emailtest.setBounds(100,92,130,26);
panel_2.add(emailtest);
rdbtnNewRadioButton_2=newJRadioButton("
爱好"
rdbtnNewRadioButton_2.setBounds(18,125,61,16);
panel_2.add(rdbtnNewRadioButton_2);
rdbtnNewRadioButton_2.addActionListener(newcardchangelistener());
rdbtnNewRadioButton_3=newJRadioButton("
学历"
rdbtnNewRadioButton_3.setBounds(18,153,61,16);
panel_2.add(rdbtnNewRadioButton_3);
rdbtnNewRadioButton_3.addActionListener(newcardchangelistener());
ButtonGroupgroup1=newButtonGroup();
group1.add(rdbtnNewRadioButton_2);
group1.add(rdbtnNewRadioButton_3);
addmessagebutton=newJButton("
添加"
addmessagebutton.addActionListener(newaddmessagebuttonlistener());
addmessagebutton.setBounds(123,121,85,27);
panel_2.add(addmessagebutton);
//清空按钮,点击时触发清空的事件
clearbutton=newJButton("
清空"
clearbutton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==clearbutton)
{
singbox.setSelected(false);
dancebox.setSelected(false);
webbox.setSelected(false);
footballbox.setSelected(false);
basketballbox.setSelected(false);
volleyballbox.setSelected(false);
xueshibox.setSelected(false);
shuoshibox.setSelected(false);
boshibox.setSelected(false);
qitabox.setSelected(false);
nametext.setText("
"
address1test.setText("
address2test.setText("
emailtest.setText("
clearbutton.setBounds(123,149,85,27);
panel_2.add(clearbutton);
clearbutton.setEnabled(false);
addmessagebutton.setEnabled(false);
JPanelpanel_3=newJPanel();
panel_3.setBorder(newSoftBevelBorder(BevelBorder.LOWERED,null,null,null,null));
panel_3.setBounds(16,123,166,187);
panel.add(panel_3);
panel_3.setLayout(null);
list=newJList();
list.setModel(defaultListModel);
list.setBounds(19,82,85,87);
listSelectionModel=list.getSelectionModel();
listSelectionModel.addListSelectionListener(
newSharedListSelectionHandler());
JScrollPanescrollPane=newJScrollPane(list);
scrollPane.setBounds(6,6,154,175);
panel_3.add(scrollPane);
panel_4=newJPanel();
panel_4.setBounds(194,232,248,78);
panel.add(panel_4);
mycard=newCardLayout();
panel_4.setLayout(mycard);
JPanelpanel_5=newJPanel();
panel_5.setBorder(newSoftBevelBorder(BevelBorder.LOWERED,null,null,null,null));
panel_4.add(panel_5);
panel_5.setLayout(null);
singbox=newJCheckBox("
唱歌"
singbox.setBounds(6,16,66,23);
panel_5.add(singbox);
dancebox=newJCheckBox("
跳舞"
dancebox.setBounds(82,16,66,23);
panel_5.add(dancebox);
webbox=newJCheckBox("
上网"
webbox.setB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 实验五 实验