java--实验四
java实验四

计算机工程学院实验报告课程名称Java 高级语言程序设计实验名称实验四、字符串与容器类实验类型设计型姓名学号日期地点成绩教师评语:一、实验目的1.掌握字符串类的应用;掌握正则表达式的基本应用;2.掌握几种常用容器类的使用方法。
二、实验内容设计实验内容:(1)设计一个字符串处理程序:实现字符串的整体、前缀、后缀比较;子字串定位;数字型字符转化为数字等各种功能。
(2).设计一个正则表达式处理程序:能完成输入字串的处理—(a) 能找出各种表达形式的日期;(b) 能对指定格式的子串进行替换。
(3)设计一个程序:利用List进行学生信息列表的存储和操作,能按学号搜索、增加、删除一个学生。
定义一个异常类,当删除不存在的学生时,将抛出错误(4)设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字序列进行统计三、实验要求1、掌握字符串定义的方法以及对字符串的各种操作功能,能够熟练运用其中的方法进行字符串操作;2、掌握集合的相关知识,能够使用其中的各种实现类解决实际问题;3、会定义异常操作,在程序运行的时候捕获异常。
四、实验内容:第一题:package string;import java.util.Scanner;public class Textstring {public static void main(String[] args) {String s1="abcdel .hcj9, int",s2="bcdsjhk,kji.hsk-/sjhg";Scanner input=new Scanner(System.in);System.out.println("----------字符串处理程序---------");System.out.println("字符串的整体比较如下:");if(pareTo(s2)<0)S ystem.out.println("'"+s1+"' < '"+s2+"'");elseS ystem.out.println("'"+s1+"' >= '"+s2+"'");//==================================================== System.out.println("字符串的前缀比较如下:");System.out.print("请输入要比较的前缀:");String s=input.next();if(s1.startsWith(s))System.out.println(s+"是"+s1+"的前缀。
java实验报告4

实验4 Java 语言面向对象基础编程一.实验目的(1)通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想(2)如何创建类和对象二、实验要求1、编写一个体现面向对象思想的程序;2、编写一个创建对象和使用对象的方法的程序;3、编写体现构造方法重载的程序;三.实验内容1、定义类创建类对象设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改(1)程序功能:设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
源代码:(自己编写)创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)(1)创建上面第一步的类的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
源代码:2、构造方法重载构造方法的名称和类同名,没有返回类型。
尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。
因此,构造方法不能直接调用,只能由new 操作符调用。
构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。
重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。
源代码如下:class RunDemo {private String userName, password;在该处编写不带参数的构造方法在该处编写带一个参数的构造方法在该处编写带两个参数的构造方法}public class EXP2 {public static void main(String[] args) {//使用不同的构造方法进行对象的初始化}}3、调用方法时参数传递的练习在Java 中,方法中的参数传递可以分为传值调用或对象方法调用等方式。
java实验四报告

任课教师:《JAVA程序设计》()实验报告学号:姓名:班级:实验指导书实验名称:图形用户界面实验学时安排:2实验类别:综合设计型实验实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1、掌握Java GUI主要的类及方法的创建及使用。
2、掌握Java 各种布局管理器的创建及使用。
3、掌握Java 对GUI的监听机制原理及主要GUI的监听接口。
4、通过试验,能够应用GUI类及布局管理器设计能够相应用户请求简单的图形界面二、实验内容P156 习题21)要求1: 在界面要求的基础上,增加菜单,包含菜单有-文件(打开保存退出等) 编辑(字体-粗体斜体颜色-红绿蓝) 帮助2:使用swing控件:JTextField, JComboBox, JCheckBox, JRadioButton3.事件响应(1)点击确定按钮时,将选择的个人姓名省份等信息显示在文本框内2)步骤•1)实现接口implements ActionListener•2) 设置确定按钮的监听者 buttonok.addActionListener(this);•3)动作实现•public void actionPerformed(ActionEvent e){ .. …. }•1)接口 JTextField 内容改变-DocumentListener•2)监听者 Document dt;•dt = textname.getDocument();•dt.addDocumentListener(this);•3) public void changedUpdate(DocumentEvent e)• {•if(e.getDocument()==dt){ }• }•public void insertUpdate(DocumentEvent e)• {•if(e.getDocument()==dt){ }• }•public void removeUpdate(DocumentEvent e) { }•JComboBox, JCheckBox, JRadioButton 选项内容改变- ItemListener public void itemStateChanged(ItemEvent e){if(e.getSource()==combopro)if(e.getStateChange()==ItemEvent.SELECTED)str=str+combopro.getSelectedItem().toString();……}三、程序代码package E26.test;import java.awt.*;import java.awt.event.*;import javax.swing.*;class aa extends JFrame implements ActionListener{Button b1,b2;TextArea textarea1;JTextField text1=new JTextField(5);JComboBox provincechoice;JCheckBox c[];String habits[]={"体育","音乐","美术"};ButtonGroup group;JRadioButton f,g;aa(String s){super(s);setSize(290,440);setLocation(120,120);setVisible(true);JMenuBar menubar;JMenu file,edit,font,color;JMenuItem jopen,jsave,jout,bold,italic,red,green,blue;menubar=new JMenuBar();file=new JMenu("文件");jopen=new JMenuItem("打开");jsave=new JMenuItem("保存");jout=new JMenuItem("退出");file.add(jopen);file.add(jsave);file.add(jout);edit=new JMenu("编辑帮助");font=new JMenu("字体");bold=new JMenuItem("粗体");italic=new JMenuItem("斜体");color=new JMenu("颜色");red=new JMenuItem("红色");green=new JMenuItem("绿色");blue=new JMenuItem("蓝色");font.add(bold);font.add(italic);color.add(red);color.add(green);color.add(blue);edit.add(font);edit.add(color);menubar.add(file);menubar.add(edit);setJMenuBar(menubar);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);Container contenePane=this.getContentPane();FlowLayout flow=new FlowLayout();flow.setAlignment(FlowLayout.LEFT);flow.setHgap(8);flow.setVgap(8);GridLayout grid=new GridLayout();Box firstline,secondline,thirdline,basebox;firstline=Box.createVerticalBox();firstline.add(new Label("姓名:"));firstline.add(text1);firstline.add(new Label("省份:"));String p[]={"湖南","浙江","江西"};provincechoice=new JComboBox<String>(p);provincechoice.setSelectedIndex(1);provincechoice.addActionListener(this);firstline.add(provincechoice);firstline.setLayout(flow);firstline.validate();secondline=Box.createVerticalBox();secondline.add(new Label("爱好:"));c=new JCheckBox[3];for(int i=0;i<3;i++){c[i]=new JCheckBox(habits[i]);add(c[i]);}secondline.add(new Label("性别:"));group=new ButtonGroup();f=new JRadioButton("男");g=new JRadioButton("女");group.add(f);group.add(g);secondline.add(f);secondline.add(g);secondline.setLayout(flow);secondline.validate();basebox=Box.createHorizontalBox();basebox.add(firstline);basebox.add(secondline);contenePane.add(basebox);textarea1=new TextArea(10,30);add(textarea1);b1=new Button("确定");b2=new Button("取消");add(b1);add(b2);b1.addActionListener(this);b2.addActionListener(this);contenePane.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==b1){String n=text1.getText();String x=provincechoice.getSelectedItem().toString();String y[]=new String[3];String s;if(group.getSelection()==f.getModel())s="男";elses="女";int j=0,k=0;for(j=0,k=-1;j<3;j++){if(c[j].isSelected()){k++;y[k]=habits[j];}}textarea1.append("姓名:"+n+"\n\n"+"省份:"+x+"\n\n"+"爱好:");for(j=0;j<3;j++){while(y[j]!=null){textarea1.append(y[j]+" ");break;}}textarea1.append("\n\n"+"性别:"+s+"\n\n");}if(e.getSource()==b2){textarea1.setText("");}}}public class awt {public static void main(String args[]){Firstwindows win=new Firstwindows("简单窗口");}}四、运行结果与测试分析五、心得体会本次实验由书上个例子中找相似的,完成最终设计,比较麻烦。
Java实验四和实验五

Java实验四和实验五实验四类的继承性和多态性【开发语⾔及实现平台或实验环境】Windows2000 或XP,JDK1.6与Jcreator4.0【实验⽬的】1. 掌握OOP⽅式进⾏程序设计的⽅法,2. 了解类的继承性和多态性的作⽤。
【实验要求】1. 编写体现类的继承性(成员变量,成员⽅法,成员变量隐藏)的程序。
2. 编写体现类多态性(成员⽅法重载,构造⽅法重载)的程序。
【实验内容】⼀类的继承性练习1.进⼀步理解继承的含义新类可从现有的类中产⽣,并保留现有类的成员变量和⽅法并可根据需要对它们加以修改。
新类还可添加新的变量和⽅法。
这种现象就称为类的继承。
当建⽴⼀个新类时,不必写出全部成员变量和成员⽅法。
只要简单地声明这个类是从⼀个已定义的类继承下来的,就可以引⽤被继承类的全部成员。
被继承的类称为⽗类或超类(superclass),这个新类称为⼦类。
通常要对⼦类进⾏扩展,即添加新的属性和⽅法。
这使得⼦类要⽐⽗类⼤,但更具特殊性,代表着⼀组更具体的对象。
继承的意义就在于此。
2.创建公共类LX3_7_P(1)编写程序⽂件LX3_7_P.java,源代码如下。
public class LX3_7_P{protected String xm; //具有保护修饰符的成员变量protected int xh;void setdata(String m,int h) //设置数据的⽅法{xm =m;xh = h;}public void print() //输出数据的⽅法{System.out.println(xm+", "+xh);}}(2)编译LX3_7_P.java,产⽣类⽂件LX3_7_P.class。
(3)创建继承的类a 程序功能:通过LX3_7_P 类产⽣⼦类LX3_8,其不仅具有⽗类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。
在程序中调⽤了⽗类的print ⽅法,同时可以看出⼦类也具有该⽅法。
Java实验报告04

实验四:接口
实验目的:掌握接口的定义及实现,掌握面向接口的编程思想
实验内容:
1、求任意柱体的体积(面向接口的编程思想)
2、动物园动物管理:动物们都会吃东西,但不同的动物吃的东西不一样;动物都会叫,但不同动物的叫声不一样;有的动物需要表演,有的动物不能表演;有的动物允许游客喂食物,有的不能喂食物;
实验步骤:
一.求任意柱体的体积(面向接口的编程思想)
1、工程图
2、实现步骤
创建一个shape包,并在shape包中建立一个IShape接口,代码如下:
创建一个cylinder包,并在包中建立Cylinder类,代码如下:
建立一个myshape类,并在其中建立两个类,Circle和Rectangle,Circle代码如下:
Rectangle类中代码如下:
建立一个text包,在此包中建立一个Text类,代码如下:
3、结果截图
二.动物园动物管理问题
1、工程图
2、实现步骤
建立一个myinterface包,并在该包中建立两个接口:IFeed,IPerformence,IFeed 接口代码如下:
,IPerformence接口中代码如下:
建立一个myclass包,在此包中建立三个类:Animal,Elephant,Monkey.
Animal类中代码如下:
Elephant中代码如下:
Monkey类中代码如下:
建立一个text包,并建立一个Text类,代码如下:
3、结果截图。
java实验四

实验四异常类的定义及处理编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。
然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。
实验步骤1) 编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。
然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。
步骤(1):编写一个包含main方法的Application类TestException,然后定义一个方法 void arraySize(){……}生成并捕获NegativeArraySizeException异常。
步骤(2):添加一个方法 void outofBound(){……}生成并捕获IndexOutOfBoundsException 异常。
步骤(3):添加一个方法 void nullPointer(){……}生成并捕获IndexOutOfBoundsException 异常。
步骤(4):在main方法中分别调用以上三个方法。
步骤(5):将文件保存为TestException.java,然后编译、调试应用程序。
步骤(6):将outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会不会有什么语法错误?如果没错误,执行程序看结果有什么不同?步骤(7):将array方法重新定义为如下形式: void arraySize() throws NegativeArraySizeException{……} 然后修改arraySize方法中捕获NegativeArraySizeException异常的语句执行部分。
java_实验四

武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。
2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。
3)了解图形用户界面的事件响应机制。
4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。
5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。
2)使用Java类库中提供的组件,并添加到图形用户界面中。
3)通过Java事件处理机制,实现与用户的交互信息。
4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。
因为只有通过图形界面,用户才能够与程序友好的交互。
缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。
创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。
2)设置一个顶层的容器。
3)根据需要为容器设置布局管理器或使用默认布局管理器。
4)将组件添加到容器内,位置自行设计。
5)为响应事件的组件编写事件处理代码。
下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。
1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。
JFrame 类扩展了 Frame 类。
大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。
框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。
下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。
Java进阶 实验四

《Java语言进阶》实验报告(4)MVC in GUI (GUI中的MVC模式)学院:计算机与信息学院专业:计算机科学与技术学号:姓名:指导老师:一、实验目的:1. 掌握MVC设计模式的概念。
2. 掌握应用MVC模式开发图形用户界面应用程序的方法。
二、实验内容:(Creating a student table ) Create a table for student records. Each record consistsof name, birthday, class status, in-state, and a photo, as shown in Figure 1. The name is of the String type; birthday is of the Date type; class status is one of the following five values: Freshman, Sophomore, Junior, Senior, or Graduate; in-state is a boolean value indicating whether the student is a resident of the state; and photo is an image icon. Use the default editors for name, birthday, and in-state. Supply a combo box as custom editor for class status..三、实验要求:1、认真执行每一个步骤的,并作好记录。
2、实验报告中给出配置的详细步骤和重要的截图。
五、实验步骤:源代码:package four;import javax.swing.*;import javax.swing.table.*;import java.awt.*;import ponent;import java.awt.EventQueue;import java.util.Date;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableCellEditor;import javax.swing.table.TableColumn;import javax.swing.text.html.ImageView;public class jtable extends JApplet {private JFrame frame;private JTable table;private JScrollPane jstable;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {jtable window = new jtable();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public jtable() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame();frame.setBounds(100, 100, 450, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);table = new JTable();Object[][] da=new Object[][]{{"jeffF.smith","sop 29 1998","freshman", null, null},{"johnF.kay", "sop 29 1997", "freshman", null,null},{"johnF.kay", "sop 29 1998","freshman", null,null},{"jeffF.smith","sop 29 1998", "freshman", null, null},{"jeffF.smith", "sop 29 1998", "freshman", null,null},};//一次性设置好最后一列的图片da[0][4] = new ImageIcon("image/z1.jpg");da[1][4] = new ImageIcon("image/z1.png");da[2][4] = new ImageIcon("image/z1.png");da[3][4] = new ImageIcon("image/z1.jpg");da[4][4] = new ImageIcon("image/z1.jpg");table.setModel(new DefaultTableModel(da, new String[] {"name", "birthday", "class status", "in-state", "photo"}){//设置表格类型Class[] columnType = new Class[] { Object.class, Object.class, Object.class, Boolean.class, Object.class };public Class getColumnClass(int columnIndex) {return columnType[columnIndex];}//设置可否被修改boolean[] columnEditables = new boolean[] {false, false, true, true, false};public boolean isCellEditable(int row, int column) {return columnEditables[column];}});//为第五列放置图片table.getColumnModel().getColumn(4).setCellRenderer(new ImageRenderer());//create acomboboxJComboBox jc=new JComboBox();jc.addItem("freshman");jc.addItem("sophomore");jc.addItem("junior");jc.addItem("senior");jc.addItem("graduate");//set combobox as the editor for the publisher columnTableColumn pC=table.getColumn("class status");pC.setCellEditor(new DefaultCellEditor(jc));jstable=new JScrollPane(table);//和存放顺序有关table.setBounds(10, 10, 401, 241);jstable.setBounds(10, 10, 401, 241);table.setRowHeight(60);frame.getContentPane().add(jstable);}}class ImageRenderer extends DefaultTableCellRenderer{/* 重写表现列的方法,显示列中的图片*/public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean isFocused, int row, int column) {setIcon(null);setBorder(null);if (value instanceof Icon)this.setIcon((Icon) value);return this;}}class TableModel extends DefaultTableModel{public TableModel(){}public TableModel(Object[][] data,Object[] columnNames){super(data,columnNames);}public Class getColumnClass(int column){return getValueAt(0,column).getClass();}public boolean isCellEditable(int row,int column){Class columnClass =getColumnClass(column);return columnClass !=getColumnClass(column)&& columnClass != Date.class;}}运行结果:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京联合大学实验报告课程(项目)名称:图形用户界面设计学院:自动化专业:自动化班级: 0810******* 学号: 2008100322517 姓名:范中涛成绩:2010年 6 月 7 日一、实验目的1、掌握java面向对象技术的基础知识2、掌握java图形用户界面设计(布局管理器的使用)3、掌握java事件处理的使用方法4、掌握JDBC操作数据库的方法5、实现数据库的查询、显示二、实验内容1、使用Access或SQL 2000数据库建立一个至少包括10条或以上记录的数据库,每条记录至少包括数据项:学号、姓名、性别、成绩。
2、使用AWT(或Swing)编制系统功能界面。
主界面:查询信息界面:添加信息界面:3、设置Access数据源,进行前台、后台的连接。
查询全部数据。
对数据库进行动态的查询。
按学号查询:按姓名查询:按性别查询:按成绩查询:实现数据添加。
`添加前,全部数据为:添加操作:添加成功后查询所有:三、实验代码主界面package student;/**** @author fancy*/import java.awt.*;import java.applet.Applet;import java.awt.event.*;import javax.swing.*;/*public interface ActionListener extends EventListener{public viod actionPerformed(ActionEvent e);}*/public class zhujiemian implements ActionListener{JButton button1,button2,button3;public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("查询成绩")){select obj=new select();obj.select();}if(e.getActionCommand().equals("添加信息")){add obj=new add();obj.add();}if(e.getActionCommand().equals("退出系统")){System.exit(0);}}/*** @param args the command line arguments*/public static void main(String[] args) {// TODO code application logic herezhujiemian obj=new zhujiemian();obj.zhujiemian();}public void zhujiemian(){JFrame frame=new subJFrame("主界面");Container contentPane=frame.getContentPane();contentPane.setLayout(new GridLayout(5,1));contentPane.add(new JLabel("学生成绩管理系统",JLabel.CENTER));button1=new JButton("查询成绩");button2=new JButton("添加信息");button3=new JButton("退出系统");contentPane.add(button1);contentPane.add(button2);contentPane.add(button3);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);frame.setSize(400,400);frame.show();}}查询界面package student;/**** @author fancy*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class select implements ActionListener{String str[]={"id","name", "sex","age","jg","all"};JButton button1,button2;JComboBox box1;JTextField field1;String a,b;int i;JTextArea ta=new JTextArea(40,100);JScrollPane pane=new JScrollPane(ta);DbTest1 obj2=new DbTest1();public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("确定")){if(a.equals("all")){obj2.selectall();}else{obj2.selects(a,b);}ta.append("学号: 姓名: 性别:年龄:java成绩:\n");ta.setLineWrap(true);ta.append(obj2.s1);}if(e.getActionCommand().equals("返回")){zhujiemian obj=new zhujiemian();obj.zhujiemian();}}private class fieldEventHandler implements ActionListener{public void actionPerformed(ActionEvent e){String str1="";if(e.getSource()==field1){b=e.getActionCommand();}}}public void select(){JFrame frame=new subJFrame("查询");Container contentPane=frame.getContentPane();contentPane.setLayout(new GridLayout(12,8));contentPane.add(new JLabel(" 查询条件",JLabel.CENTER)); box1=new JComboBox(str);button1=new JButton("确定");button2=new JButton("返回");field1=new JTextField(10);contentPane.add(new JLabel("字段",JLabel.LEFT));contentPane.add(box1);box1.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e){if(e.getStateChange()==ItemEvent.SELECTED){i=box1.getSelectedIndex();a=str[i];}}});contentPane.add(new JLabel("值",JLabel.LEFT));contentPane.add(field1);contentPane.add(button1);contentPane.add(new JLabel("查询结果",JLabel.LEFT)); contentPane.add(pane);contentPane.add(button2);button1.addActionListener(this);button2.addActionListener(this);fieldEventHandler handler=new fieldEventHandler();field1.addActionListener(handler);frame.setSize(400,600);frame.show();}}添加界面package student;/**** @author fancy*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class add implements ActionListener{String id,name, sex,age,jg;JButton button1,button2;JTextField field1,field2,field3,field4,field5;DbTest1 obj1=new DbTest1();public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("确定")){obj1.insert(id,name,sex,age,jg);System.out.println(id+name+sex+age+jg);addok obj=new addok();obj.addok();}if(e.getActionCommand().equals("返回")){zhujiemian obj=new zhujiemian();obj.zhujiemian();}}private class fieldEventHandler implements ActionListener{public void actionPerformed(ActionEvent e){String str1="";if(e.getSource()==field1){id=e.getActionCommand();}else if(e.getSource()==field2){name=e.getActionCommand();}else if(e.getSource()==field3){sex=e.getActionCommand();}else if(e.getSource()==field4){age=e.getActionCommand();}else if(e.getSource()==field5){jg=e.getActionCommand();}}}public void add(){JFrame frame=new subJFrame("添加");Container contentPane=frame.getContentPane();contentPane.setLayout(new GridLayout(12,2));field1=new JTextField(10);field2=new JTextField(10);field3=new JTextField(10);field4=new JTextField(10);field5=new JTextField(10);contentPane.add(new JLabel(" 添加",JLabel.RIGHT));contentPane.add(new JLabel("",JLabel.LEFT));contentPane.add(new JLabel("id",JLabel.LEFT));contentPane.add(field1);contentPane.add(new JLabel("name",JLabel.LEFT));contentPane.add(field2);contentPane.add(new JLabel("sex",JLabel.LEFT));contentPane.add(field3);contentPane.add(new JLabel("age",JLabel.LEFT));contentPane.add(field4);contentPane.add(new JLabel("jp",JLabel.LEFT));contentPane.add(field5);button1=new JButton("确定");button2=new JButton("返回");contentPane.add(button1);contentPane.add(button2);button1.addActionListener(this);button2.addActionListener(this);fieldEventHandler handler=new fieldEventHandler();field1.addActionListener(handler);field2.addActionListener(handler);field3.addActionListener(handler);field4.addActionListener(handler);field5.addActionListener(handler);frame.setSize(400,400);frame.show();}}添加成功界面package student;/*** @author fancy*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class addok implements ActionListener{JButton button1;JFrame frame=new subJFrame("添加成功");public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("确定")){frame.setVisible(false);}}public void addok(){Container contentPane=frame.getContentPane();contentPane.setLayout(new GridLayout(2,1));contentPane.add(new JLabel("恭喜你,添加成功!",JLabel.CENTER));button1=new JButton("确定");contentPane.add(button1);button1.addActionListener(this);frame.setSize(200,100);frame.show();}}数据库操作界面package student;/*** @author fancy*/import java.sql.*;public class DbTest1 {public static String s1="";public void selectall(){String id,name, sex,age,jg;Connection conn = null;Statement stmt = null;ResultSet rs = null;s1="";try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{conn=DriverManager.getConnection("jdbc:odbc:student");stmt=conn.createStatement();String sql="SELECT * FROM student order by id";rs=stmt.executeQuery(sql);while(rs.next()){id=rs.getString("id");name=rs.getString("name");sex=rs.getString("sex");age=rs.getString("age");jg=rs.getString("jg");System.out.println("学号: "+" 姓名: "+" 性别:"+"年龄:"+"java成绩:");System.out.println(" "+id+" "+name+" "+sex+" "+age+" "+jg);s1=s1.concat(" "+id+" "+name+" "+sex+" "+age+" "+jg +"\n");System.out.println();}conn.close();}catch(SQLException e){System.out.println(e.getMessage());}}public void selects(String str1,String str2){String id,name, sex,age,jg;Connection conn = null;Statement stmt = null;ResultSet rs = null;s1="";try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{conn=DriverManager.getConnection("jdbc:odbc:student");stmt=conn.createStatement();String sql="SELECT * FROM student WHERE " +str1+ " ='" + str2 + "'";rs=stmt.executeQuery(sql);while(rs.next()){id=rs.getString("id");name=rs.getString("name");sex=rs.getString("sex");age=rs.getString("age");jg=rs.getString("jg");System.out.println("学号: "+" 姓名: "+" 性别:"+"年龄:"+"java成绩:");System.out.println(" "+id+" "+name+" "+sex+" "+age+" "+jg);s1=s1.concat(" "+id+" "+name+" "+sex+" "+age+" "+jg +"\n");System.out.println();}conn.close();}catch(SQLException e){System.out.println(e.getMessage());}}public void insert(String str1,String str2,String str3,String str4,String str5){String id,name, sex,age,jg;Connection conn = null;Statement stmt = null;ResultSet rs = null;s1="";try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{conn=DriverManager.getConnection("jdbc:odbc:student");stmt=conn.createStatement();String sql="INSERT INTO student(id,name,sex,age,jg) V ALUES (' " +str1+ " ', '" +str2+ "' ,'" +str3+ "' ,' " +str4+ "' ,'" +str5+ "' )";stmt.executeUpdate(sql);conn.close();}catch(SQLException e){System.out.println(e.getMessage());}}}标题框架package student;import java.awt.*;import java.applet.Applet;import javax.swing.*;public class subJFrame extends JFrame{public subJFrame() {}public subJFrame(String title){super(title);}protected void frameInit(){super.frameInit();setDefaultCloseOperation(EXIT_ON_CLOSE);}}四、实验心得经过这次图形界面实验,系统的学习了,图形界面的的设计。