java 程序设计 实验五.docx

上传人:b****3 文档编号:3755234 上传时间:2022-11-25 格式:DOCX 页数:34 大小:124.34KB
下载 相关 举报
java 程序设计 实验五.docx_第1页
第1页 / 共34页
java 程序设计 实验五.docx_第2页
第2页 / 共34页
java 程序设计 实验五.docx_第3页
第3页 / 共34页
java 程序设计 实验五.docx_第4页
第4页 / 共34页
java 程序设计 实验五.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

java 程序设计 实验五.docx

《java 程序设计 实验五.docx》由会员分享,可在线阅读,更多相关《java 程序设计 实验五.docx(34页珍藏版)》请在冰豆网上搜索。

java 程序设计 实验五.docx

java程序设计实验五

实验报告

 

课程名称:

JAVA程序设计

学生姓名:

孙文浩班级计算机141学号14416122

学院(系):

信息数理学院指导教师:

吕猛

实验时间:

2016年12月6日

实验名称:

实验五基于Swing的图形用户界面开发实验

 

实验五基于Swing的图形用户界面开发实验

一实验内容

(1)完成开发界面如图所示,实现如下功能

选中“查看已有名片”按钮,程序处于查看状态,可以在“名片列表”中选择要查看的名片,程序在“名片详实信息”栏显示该名片的详实信息,此状态中名片信息处于不可编辑状态

‚选中“添加新名片”按钮,程序处于添加状态,所有关于明天信息的项目都处于可编辑状态,设置完成相关信息后,单击“添加”按钮,在“名片列表”中出现新添加名片的名称。

单击“清空”按钮可以清空还没提交的内容

ƒ在查看状态和添加状态下,都可以通过点击“爱好”、“学历”单选按钮以显示名片的不同附加信息

(备注:

名片附加信息部分,当点击“爱好”按钮时显示的如图1所示,当点击“学历”按钮时显示如图2所示。

图1

图2

(2)记事本设计与实现

如图所示

(1)编程实现如图所示的界面

(2)实现文件、编辑、格式、查看,帮助菜单(3)实现记事本的基本功能

二实验目的

(1)理解组件的分类

(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

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

当前位置:首页 > 工程科技 > 能源化工

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

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