java程序设计实验五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C H A
N
G Z H O
U U N I V E R
S
I
T
Y
实验报告
课程名称: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)
public class PersonInf {
public String yourname;
public String address1;
public String address2;
public String email;
public String sing = null;
public String dance = null;
public String web = null;
public String football = null;
public String basketball = null;
public String volleyball = null;
public String xueshi = null;
public String shuoshi = null;
public String boshi = null;
public String qita = null;
public PersonInf(String yourname, String address1, String address2, String email, String sing, String dance,
String web, String football, String basketball, String volleyball,
String xueshi,String shuoshi,String boshi, String qita) {
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;
}
}
import java.awt.BorderLayout;
import javax.swing.*;
import java.awt.*;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JInternalFrame;
import javax.swing.JRadioButton;
import javax.swing.JLayeredPane;
import javax.swing.JSplitPane;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.DefaultListModel;
import ponent;
import javax.swing.border.SoftBevelBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.border.BevelBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.border.EtchedBorder;
import javax.swing.JFormattedTextField;
import javax.swing.JSpinner;
import javax.swing.JTable;
import javax.swing.JList;
import javax.swing.JScrollPane;
import java.awt.Color;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import java.awt.CardLayout;
public class card extends JFrame {
private JPanel contentPane;
public JTextField nametext;
public JTextField address1test;
public JTextField address2test;
public JTextField emailtest;
public JButton addmessagebutton;
public JButton clearbutton;
private JList list;
//学历,爱好,添加新名片,查看名片的按钮
private JRadioButton rdbtnNewRadioButton_2;