第一部分:实验项目
项目一:随机相片显示。
目的:了解随机数的生成,及图片的显示。
目标:
(1)在已有代码的基础上,完成随机(或 顺序)显示三张图片的功能。
(2)当猜测准确,或错误时,弹出对话框进行回应。
(1)在已有代码的基础上,完成随机(或 顺序)显示三张图片的功能。
(2)当猜测准确,或错误时,弹出对话框进行回应。
项目一示例代码
import
java.
awt.
EventQueue;
import
javax.
swing.
JFrame;
import
javax.
swing.
JPanel;
import
javax.
swing.
border.
EmptyBorder;
import
javax.
swing.
JButton;
import
javax.
swing.
JTextField;
import
javax.
swing.
JLabel;
import
java.
awt.
Color;
import
java.
awt.
SystemColor;
import
java.
awt.
event.
ActionListener;
import
java.
awt.
event.
ActionEvent;
import
java.
awt.
event.
MouseAdapter;
import
java.
awt.
event.
MouseEvent;
public
class
Guess01
extends
JFrame {
/**
*
*/
private
static
final
long
serialVersionUID
= 1
L;
private
JPanel
contentPane;
private
JTextField
tfDir;
private
JTextField
tfClass;
/**
* Launch the application.
*/
public
static
void
main(
String[]
args) {
EventQueue.
invokeLater(
new
Runnable() {
public
void
run() {
try {
Guess01
frame
=
new
Guess01();
frame.
setVisible(
true);
}
catch (
Exception
e) {
e.
printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public
Guess01() {
setTitle(
"\u731C\u731C\u770B\u6E38\u620FV0.1");
setDefaultCloseOperation(
JFrame.
EXIT_ON_CLOSE);
setBounds(
100,
100,
645,
409);
contentPane
=
new
JPanel();
contentPane.
setBorder(
new
EmptyBorder(
5,
5,
5,
5));
setContentPane(
contentPane);
contentPane.
setLayout(
null);
// 选择目录 按钮的处理程序
JButton
btnDir
=
new
JButton(
"\u9009\u62E9\u76EE\u5F55");
btnDir.
addActionListener(
new
ActionListener() {
public
void
actionPerformed(
ActionEvent
arg0) {
}
});
btnDir.
setBounds(
26,
26,
93,
23);
contentPane.
add(
btnDir);
// 文本框,显示目录
tfDir
=
new
JTextField();
tfDir.
setEditable(
false);
tfDir.
setBounds(
125,
27,
363,
21);
contentPane.
add(
tfDir);
tfDir.
setColumns(
10);
// 选择班级 按钮的处理程序
JButton
btnClass
=
new
JButton(
"\u9009\u62E9\u73ED\u7EA7");
btnClass.
addActionListener(
new
ActionListener() {
public
void
actionPerformed(
ActionEvent
e) {
}
});
btnClass.
setBounds(
26,
59,
93,
23);
contentPane.
add(
btnClass);
// 文本框,显示班级文件
tfClass
=
new
JTextField();
tfClass.
setEditable(
false);
tfClass.
setBounds(
125,
60,
363,
21);
contentPane.
add(
tfClass);
tfClass.
setColumns(
10);
// 标签,显示带猜测学生姓名
JLabel
lbGuessName
=
new
JLabel(
"\u59D3\u540D");
lbGuessName.
setBounds(
259,
91,
102,
23);
contentPane.
add(
lbGuessName);
// 标签,显示第一个学生相片
JLabel
lblImg1
=
new
JLabel(
"\u56FE\u72471");
lblImg1.
addMouseListener(
new
MouseAdapter() {
@
Override
public
void
mouseClicked(
MouseEvent
arg0) {
}
});
lblImg1.
setBounds(
26,
151,
183,
178);
contentPane.
add(
lblImg1);
// 标签,显示第二个学生相片
JLabel
lblImg2
=
new
JLabel(
"\u56FE\u72472");
lblImg2.
addMouseListener(
new
MouseAdapter() {
@
Override
public
void
mouseClicked(
MouseEvent
e) {
}
});
lblImg2.
setForeground(
Color.
BLACK);
lblImg2.
setBackground(
SystemColor.
inactiveCaption);
lblImg2.
setBounds(
241,
155,
183,
172);
contentPane.
add(
lblImg2);
// 标签,显示第三个学生相片
JLabel
lblImg3
=
new
JLabel(
"\u56FE\u72473");
lblImg3.
addMouseListener(
new
MouseAdapter() {
@
Override
public
void
mouseClicked(
MouseEvent
e) {
}
});
lblImg3.
setBounds(
434,
155,
185,
172);
contentPane.
add(
lblImg3);
// 再猜一次 按钮,点击则更新相应的三张图片 与 带猜测学生姓名
JButton
btnGuessAgain
=
new
JButton(
"\u518D\u731C\u4E00\u6B21");
btnGuessAgain.
addActionListener(
new
ActionListener() {
public
void
actionPerformed(
ActionEvent
e) {
}
});
btnGuessAgain.
setBounds(
223,
337,
93,
23);
contentPane.
add(
btnGuessAgain);
}
}
项目二:数据库初步。
目的:了解Java连接数据库的步骤与方法,以及MySQL数据库的安装与使用。
目标:
(1)在机房安装上MySQL数据库。
(2)创建数据表 student(id varchar(12),name varchar(20), success int, failure int ),导入相应的数据到文件中。success 与 failure的默认值为1。
(3)当猜猜正确时,数据表中,success+1;猜测错误时,failure+1。
1. 在作业博客中,利用这周与17周周一上午的时间,完成两个项目,并把运行结果、代码写到博客中。
第二部分:作业博客要求
2. 在作业博客中,回答以下三个问题:
(1)简述Java中,连接数据库有哪几个基本步骤? 其相应的核心类与代码分别是什么?
答:连接数据库的基本步骤:
1)首先,安装mysql;
2)创建相应的数据库以及表;
3)用代码实现数据库的连接。
(2)简述MySQL中,创建一个数据表的SQL语句是什么?
答:创建一个数据表的SQL语句是:create database name;
(3) 简述Java中, 生成[1,53]之间的随机数的核心代码分别是什么?(4)简述Java中,读写文本文件的类分别是什么?核心代码分别是什么?
所附代码对应的GUI界面
C#编写的界面等(见 《猜猜看》游戏原型初步实现 )
总结:虽然可以在老师或者是同学的博客上摘到相对应或类似的代码,可是将那些代码复制或完全照搬到自己的class中却不一定都完全正确。因为每个人所选择的目录以及目录的路径也不完全相同,文件及文件内容也不完全相同。
另外,有些代码在实验室的电脑上运行,且不注意保存,容易给自己造成了不必要的麻烦。比如说,第二天,再要调用昨天的代码的时候,却发现它已经不存在了,最后不得不重新敲一次代码或者复制。
最后,附上项目一Guess01的运行结果图