《java 程序设计 实验五[汇编]》由会员分享,可在线阅读,更多相关《java 程序设计 实验五[汇编](26页珍藏版)》请在金锄头文库上搜索。
1、word可编辑实用文档 实 验 报 告课程名称: JAVA程序设计 学 生 姓 名: 孙文浩 班 级 计算机141 学 号 14416122 学 院(系): 信息数理学院 指 导 教 师: 吕猛 实验时间: 2016 年 12 月 6 日 实验名称: 实验五 基于Swing的图形用户界面开发实验 实验五 基于Swing的图形用户界面开发实验一 实验内容(1)完成开发界面如图所示 ,实现如下功能选中“查看已有名片”按钮 ,程序处于查看状态 ,可以在“名片列表”中选择要查看的名片 ,程序在“名片详实信息”栏显示该名片的详实信息 ,此状态中名片信息处于不可编辑状态选中“添加新名片”按钮 ,程序处于添
2、加状态 ,所有关于明天信息的项目都处于可编辑状态 ,设置完成相关信息后 ,单击“添加”按钮 ,在“名片列表”中出现新添加名片的名称。单击“清空”按钮可以清空还没提交的内容在查看状态和添加状态下 ,都可以通过点击“爱好”、“学历”单选按钮以显示名片的不同附加信息(备注:名片附加信息部分 ,当点击“爱好”按钮时显示的如图1所示 ,当点击“学历”按钮时显示如图2所示。)图1图2(2)记事本设计与实现如图所示(1)编程实现如图所示的界面(2)实现文件、编辑、格式、查看 ,帮助菜单(3)实现记事本的基本功能二 实验目的(1) 理解组件的分类(2) 掌握容器、布局管理器、普通组件的使用(3) 理解事件处理
3、机制的工作原理(4) 掌握事件的添加和功能代码的编写方法三 实验过程(1) 问题分析答:名片的设计除了使用最基本的组件 ,如JButton,Jlist,JCheckBox, JTextField, JRadioButton, CardLayout以外 ,最主要的是逻辑事件的编写 ,在成功布局完见面后 ,就需要编写事件处理。首先 ,由于是名片信息 ,保存着一个人的基本信息 ,所以可以用一个类来表示 ,如PersonInf类 ,其次 ,由于是多个人的信息 ,可以通过ArrayList来存放类;其次就是当点击按钮的时候 ,正确添加和显示信息 ,此处用到cardLayout布局 ,可以减少界面的复杂度
4、 ,在使用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
5、 = 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 basket
6、ball, 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.volleyba
7、ll = 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.
8、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 java.awt.Component;import javax.swing.border.SoftBevelBorder;import javax.swing.event.ListSe
9、lectionEvent;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.
10、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
11、.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 JR
12、adioButton rdbtnNewRadioButton_2;private JRadioButton rdbtnNewRadioButton_3;public JRadioButton rdbtnNewRadioButton_1;public JRadioButton rdbtnNewRadioButton;private JPanel panel_4;/学历和爱好内的多选项public JCheckBox singbox;public JCheckBox dancebox;public JCheckBox webbox;public JCheckBox footballbox;publ
13、ic JCheckBox basketballbox;public JCheckBox volleyballbox;public JCheckBox xueshibox;public JCheckBox boshibox;public JCheckBox shuoshibox;public JCheckBox qitabox;ListSelectionModel listSelectionModel;CardLayout mycard; /用于切换爱好和学历卡片/定义默认的list模型DefaultListModel defaultListModel = new DefaultListMode
14、l(); /* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try card frame = new card();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the frame. */窗体的构造函数 ,用于设定相关组件并且添加事件 ,合理安排组建的位置public card() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 464, 338);contentPane = new JPanel();contentPane.setBorder