《java编程语言:原理与范例》课后实验源代码
第一章
实验一
package ch01;
import java.text.SimpleDateFormat;
import java.util.Date;
class Timer extends Thread {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
public void run() {
while (true) {
System.out.print("\r现在时间是:");
Date now = new Date();
System.out.print(sdf.format(now));
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Clock {
public static void main(String[] args) {
Timer timer = new Timer();
timer.start();
}
}
实验二
package ch01;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MagicButton extends MouseAdapter {
JFrame win;
JButton button = new JButton("你点不到我");
Random rand = new Random();
void initUI() {
win = new JFrame();
win.setLayout(null);
button.setSize(100, 40);
button.addMouseListener(this);
win.add(button);
win.setSize(400, 300);
win.setResizable(false);
win.setLocationRelativeTo(null);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setVisible(true);
}
public static void main(String[] args) {
MagicButton demo = new MagicButton();
demo.initUI();
}
public void mouseEntered(MouseEvent e) {
int mouseX = button.getX() + e.getX();
int mouseY = button.getY() + e.getY();
while (true) {
int buttonX = rand.nextInt(win.getWidth() - button.getWidth());
int buttonY = rand.nextInt(win.getHeight() - button.getHeight());
button.setLocation(buttonX, buttonY);
if (!button.getBounds().contains(mouseX, mouseY)) {
break;
}
}
}
}
第二章
实验一
/*********************************
2. 交换两个变量的值