ここをクリックすると、項目ページに戻ります。
***************************************************
  h13.02.13
「複数のクラスからなるプログラム」
今回で、おりおに必要なルーチンの例がだいたいそろいました。



import java.util.*;import java.awt.*;import
java.applet.Applet;import java.awt.event.*;
class Node { double x;}
class GraphPanel extends Panel implements Runnable,
MouseListener, MouseMotionListener {
Thread relaxer; boolean stress; int nnodes; Node nodes[] = new Node[100];
void addEdge() { Node n = new Node(); n.x = 180; nodes[nnodes++] = n; }
public void run() {
Thread me = Thread.currentThread();
while (relaxer == me) {relax();try {Thread.sleep(100);} catch (InterruptedException e) {break;} }
}
synchronized void relax() {for (int i=0;i public synchronized void update(Graphics g) {for(int i=0;i orio3 graph; GraphPanel(orio3 graph) {this.graph = graph;addMouseListener(this); }
public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { }
public void mouseMoved(MouseEvent e) { }
public void start() {relaxer = new Thread(this);relaxer.start();} public void stop() {relaxer = null;}
} public class orio3 extends Applet implements ActionListener, ItemListener {
GraphPanel panel; Panel controlPanel;Button shake = new Button("Shake"); Checkbox stress = new Checkbox("Stress");
public void init() {
setLayout(new BorderLayout());
panel = new GraphPanel(this);add("Center", panel);controlPanel = new Panel(); add("South", controlPanel);
controlPanel.add(shake); shake.addActionListener
(this);controlPanel.add(stress); stress.addItemListener(this);
panel.addEdge();
}
public void destroy() { remove(panel); remove(controlPanel); }
public void start() { panel.start(); } public void stop() { panel.stop(); }
public void actionPerformed(ActionEvent e) { } public void itemStateChanged(ItemEvent e) { }
}


ここをクリックすると、いちおう実行例がでます。

ここをクリックすると、項目ページに戻ります。