-
Notifications
You must be signed in to change notification settings - Fork 0
/
Circuit.java
95 lines (84 loc) · 2.08 KB
/
Circuit.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Circuit.java (c) 2005,2008 by Paul Falstad, www.falstad.com
import java.io.InputStream;
import java.awt.*;
import java.awt.image.*;
import java.applet.Applet;
import java.util.Vector;
import java.io.File;
import java.util.Random;
import java.util.Arrays;
import java.lang.Math;
import java.net.URL;
import java.awt.event.*;
import java.io.FilterInputStream;
import java.io.ByteArrayOutputStream;
import java.util.StringTokenizer;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Circuit extends Applet implements ComponentListener {
static CirSim ogf;
boolean finished = false;
void destroyFrame() {
if (ogf != null)
ogf.dispose();
ogf = null;
repaint();
finished = true;
}
boolean started = false;
public void init() {
addComponentListener(this);
}
public static void main(String args[]) {
ogf = new CirSim(null);
ogf.init();
}
public void showFrame() {
if ( finished )
{
repaint();
return;
}
if (ogf == null) {
started = true;
ogf = new CirSim(this);
ogf.init();
}
ogf.setVisible(true);
repaint();
}
public void hideFrame() {
if ( finished )
return;
ogf.setVisible(false);
repaint();
}
public void toggleSwitch(int x) { ogf.toggleSwitch(x); }
public void paint(Graphics g) {
String s = "Applet is open in a separate window.";
if ( ogf != null && !ogf.isVisible() )
s = "Applet window is hidden.";
if (!started)
s = "Applet is starting.";
else if (ogf == null || finished)
s = "Applet is finished.";
else if (ogf != null && ogf.useFrame)
ogf.triggerShow();
g.drawString(s, 10, 30);
}
public void componentHidden(ComponentEvent e){}
public void componentMoved(ComponentEvent e){}
public void componentShown(ComponentEvent e) { showFrame(); }
public void componentResized(ComponentEvent e) {
if (ogf != null)
ogf.componentResized(e);
}
public void destroy() {
if (ogf != null)
ogf.dispose();
ogf = null;
repaint();
}
};