实验四 基于图形界面的JDBC程序开发

更新时间:2023-10-04 15:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

淮海工学院计算机工程学院

实验报告书

课程名:《面向对象程序设计》

题 目: 实验四基于图形界面的JDBC程序开发

班 级: 软件111 学 号: xx00 姓 名: 流蓝

评语: 成绩: 指导教师: 批阅时间: 年 月 日 《 面向对象程序设计 》实验报告 - 1 -

实验目的:

通过实验熟练掌握Java面向对象的概念,Java类的声明和使用;

熟练掌握构造函数的定义和使用,包括无参和带参构造函数; 能够正确在类中定义若干属性和方法;

掌握方法的定义及调用,掌握参数的结合过程;

能够正确创建类的实例对象,调用对象类的相应方法。 实验内容:

1、 4-1或4-3任选一个实现,不要完全按照例子完成,加入自己的创新的部分。

或者选做下面题目中的一个: 文本编辑器的设计与实现 ;计算器的设计与实现 ;Java小游戏程序 ; JDBC技术的应用(校园卡信息/学生信息/教师信息/图书信息/宿舍信息/学生会/成绩/课程/教室管理);或其他自选题目。

2、要求必须用到 控件、容器、布局、事件处理、菜单。实验步骤与源程序 测试数据与实验结果(可以抓图粘贴) import java.awt.*;

import java.awt.event.*; import javax.swing.*;

import javax.swing.event.*;

public class GUIshow extends JFrame implements

ActionListener,ItemListener,ChangeListener,Runnable {

JPanel pNorth=new JPanel(); JPanel pBottom= new JPanel(); JPanel pTime=new JPanel(); JLabel pic; ImageIcon img; Thread thread1;

Label prompt,ptime,pscore;

TextField question,score,time; JPasswordField answer; Checkbox look; JComboBox size; Container c;

JSlider jslcolor; int cValue;

String[][] game=new String[3][3]; int i;

《 面向对象程序设计 》实验报告 - 2 -

int scores=0,score0=0; int times=50;

GUIshow() {

this.setTitle(\图形界面设计——竞猜小游戏\ thread1=new Thread(this,\ c=getContentPane();

c.setLayout(new BorderLayout());

prompt=new Label(\有奖竞猜啦!!****\size=new JComboBox(); size.addItem(\size.addItem(\size.addItem(\

question=new TextField(20);

look=new Checkbox(\明码显示答案\answer=new JPasswordField(10);

pTime.setFont(new Font(\黑体\pTime.setForeground(Color.red); ptime=new Label(\剩余时间:\time=new TextField(6);

pscore=new Label(\目前得分:\score=new TextField(\pNorth.add(prompt); pNorth.add(size); pNorth.add(question); pNorth.add(look); pNorth.add(answer);

look.addItemListener(this); size.addItemListener(this); c.add(pNorth,BorderLayout.NORTH); pTime.setLayout(new GridLayout(8,1)); pTime.add(ptime); pTime.add(time); pTime.add(pscore); pTime.add(score);

c.add(pTime,BorderLayout.EAST); img=new ImageIcon(\pic=new JLabel(img);

《 面向对象程序设计 》实验报告 - 3 -

c.add(pic,BorderLayout.CENTER);

jslcolor=new JSlider(JSlider.HORIZONTAL,0,255,100); jslcolor.setMajorTickSpacing(50); jslcolor.setPaintLabels(true); Button btStart=new Button(\开始游戏\Button btOK=new Button(\确定\Button btCancel=new Button(\退出\Button btReward=new Button(\奖品\pBottom.add(jslcolor); pBottom.add(btStart); pBottom.add(btOK); pBottom.add(btReward); pBottom.add(btCancel);

jslcolor.addChangeListener(this); btStart.addActionListener(this); btOK.addActionListener(this); btCancel.addActionListener(this); btReward.addActionListener(this); c.add(pBottom,BorderLayout.SOUTH); thread1.start();

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent ew) {

System.exit(0); } });

this.setBounds(200,50,600,400); this.setVisible(true); this.setResizable(false); }

public void itemStateChanged(ItemEvent e) {

if(e.getItemSelectable() instanceof JComboBox) {

JComboBox temp;

temp=(JComboBox)(e.getItemSelectable()); String s=temp.getSelectedItem().toString();

《 面向对象程序设计 》实验报告 - 4 -

}

i=Integer.parseInt(s); i=i-1;

question.setText(getQuestion(i));

switch(i) {

case 0:

img=new ImageIcon(\ break; case 1:

img=new ImageIcon(\ break; case 2:

img=new ImageIcon(\ break; }

pic.setIcon(img); }

if(e.getItemSelectable() instanceof Checkbox) {

Checkbox ch=(Checkbox)(e.getItemSelectable()); if(ch.getState()) {

answer.setEchoChar((char)0); answer.setText(game[i][1]); } else {

answer.setEchoChar('*'); } }

public void stateChanged(ChangeEvent es) {

if(es.getSource()==jslcolor) {

cValue=((JSlider)es.getSource()).getValue();

pBottom.setBackground(new Color(cValue,250,cValue)); pBottom.repaint(); } }

public void run() {

try

《 面向对象程序设计 》实验报告 - 5 -

{

while(times>0) {

Thread.sleep(1000); times=times-1;

time.setText(\ }

note(); }

catch(InterruptedException e){} }

public void actionPerformed(ActionEvent evt) {

if(evt.getActionCommand().equals(\开始游戏\ {

question.setText(getQuestion(i)); img=new ImageIcon(\ pic.setIcon(img);

answer.setEchoChar((char)0); times=50; scores=0;

time.setText(\ score.setText(\ }

else if(evt.getActionCommand().equals(\确定\ {

if(String.valueOf(answer.getPassword()).equals(getAnswer(i))) {

JOptionPane.showMessageDialog(null,\恭喜你回答正确!\友情提醒\

score0=getScore(i); scores=scores+score0; score.setText(\ } else

JOptionPane.showMessageDialog(null,\对不起,回答错误!\友情提醒\ }

else if(evt.getActionCommand().equals(\退出\ {

System.exit(0); }

else if(evt.getActionCommand().equals(\奖品\ {

img=new ImageIcon(\

《 面向对象程序设计 》实验报告 - 6 -

pic.setIcon(img); } }

public String getQuestion(int i) {

game[0][0]=\凌风阁哪年建立的?\ game[1][0]=\凌风阁哪年建立的11?\ game[2][0]=\凌风阁哪年建立的22?\ return game[i][0]; }

public String getAnswer(int i) {

game[0][1]=\ game[1][1]=\ game[2][1]=\ return game[1][1]; }

public int getScore(int i) {

game[0][2]=\ game[1][2]=\ game[2][2]=\

return Integer.parseInt(game[i][2]); }

public void note() {

if(times==0&&!(String.valueOf(answer.getPassword()).equals(getAnswer(i)))) {

JOptionPane.showMessageDialog(null,\已经超时,请看答案!\友情提醒\

answer.setEchoChar((char)0); answer.setText(game[i][1]); }

if(scores==100)

JOptionPane.showMessageDialog(null,\全部回答正确,你真棒!\友情提醒\ }

public static void main(String args[]) {

new GUIshow(); } }

《 面向对象程序设计 》实验报告 - 7 -

结果分析与实验体会

通过这次实验,理解了数据库的定义和使用,掌握对象的创建方法,修饰符和访问控制符的使用,以及运用时该注意的一些问题在实际使用中还需多多练习。

本文来源:https://www.bwwdw.com/article/8xad.html

Top