Head First Java 第2版
頭とからだで覚えるJavaの基本
(オライリージャパン)
Kathy Sierra (著) Bert Bates (著) 島田 秋雄(監修)
神戸 博之 (監修) 高坂 一城 (監修) 夏目 大 (翻訳)
開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Java (プログラミング言語)
- javac (コンパイラ)
- java (application launcher)
Head First Java 第2版 ―頭とからだで覚えるJavaの基本(Kathy Sierra (著)、Bert Bates (著)、島田 秋雄 (監修)、神戸 博之 (監修)、高坂 一城 (監修)、夏目 大 (翻訳)、オライリージャパン)の12章(GUIの基礎)、自分で考えてみよう(p.385)を解いてみる。
自分で考えてみよう(p.385)
コード(BBEdit, Emacs)
TestAnimation2.java
import javax.swing.*;
import java.awt.*;
public class TestAnimation2 {
JFrame frame;
int x = 50;
int y = 50;
public static void main(String [] args) {
TestAnimation2 gui = new TestAnimation2();
gui.go();
}
public void go() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add(BorderLayout.CENTER, drawPanel);
frame.setSize(500, 500);
frame.setVisible(true);
try {
Thread.sleep(10000);
} catch (Exception ex) {}
// 1
while (x < 400) {
x = x + 1;
y = y + 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
try {
Thread.sleep(1000);
} catch (Exception ex) {}
// 2
x = 50;
y = 100;
drawPanel.repaint();
while (x < 400) {
x = x + 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
try {
Thread.sleep(1000);
} catch (Exception ex) {}
// 3
x = 400;
drawPanel.repaint();
while (x > 50) {
x = x - 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
try {
Thread.sleep(1000);
} catch (Exception ex) {}
// 1
x = 400;
y = 50;
drawPanel.repaint();
while (x > 50) {
x = x - 1;
y = y + 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
try {
Thread.sleep(1000);
} catch (Exception ex) {}
// 2
x = 50;
y = 400;
drawPanel.repaint();
while (x < 400) {
x = x + 1;
y = y - 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
try {
Thread.sleep(1000);
} catch (Exception ex) {}
// 3
x = 400;
y = 400;
drawPanel.repaint();
while (x > 50) {
x = x - 1;
y = y - 1;
drawPanel.repaint();
try {
Thread.sleep(10);
} catch (Exception ex) {}
}
}
class MyDrawPanel extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(Color.red);
g.fillOval(x, y, 50, 50);
}
}
}
入出力結果(Terminal)
$ javac TestAnimation2.java && java TestAnimation2 $
記念に。
0 コメント:
コメントを投稿