|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Panel
java.applet.Applet
Rechner
public class Rechner
Ein kleiner ganzzahliger Rechner mit Stack-Architektur.
Ein Objekt dieser Klasse stellt ein Applet dar, welches interne Logik und
Anzeige eines ganzzahligen Rechners mit Stack-Architektur mit vier
Stackregistern (x, y, z und t wie bei den HP-Taschenrechnern)
darstellt.
Dezimale und hexadezimale Darstellung werden unterstützt.
Die (Tasten-) Eingaben für Ziffern, Enter und Operationen gehören nicht
zum (Applet-) Objekt. Sie sind über öffentliche Methoden ansteuerbar.
Damit ist ein beliebig gestaltetes Tastenfeld in der einbettenden
HTML-Seite (als Formular-Tabelle) leicht realisierbar.
Auf einer
Demo-Seite
man sich dies alles anschauen. Diesem
html-file (see page source) kann
man auch die Anregung für eine Formularansteuerung des kleinen Rechners
entnehmen. Das referenzierte .jar-File wurde generiert mit (sinngemäß)
den folgenden Anweisungen:
javac -d build Rechner.java
cd build
jar cfvM rechner.jar Rechner.class
de\a_weinert\graf\DisplayMuster.class
de\a_weinert\graf\MatrixDisplay.class
de\a_weinert\graf\MatrixDisplayDim.class
de\a_weinert\graf\MatrixDisplay$Impl.class
Copyright 2001, 2003, 2004 Albrecht Weinert
de.a_weinert.graf,
MatrixDisplay,
DisplayPattern,
Serialized Form| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.applet.Applet |
|---|
Applet.AccessibleApplet |
| Nested classes/interfaces inherited from class java.awt.Panel |
|---|
Panel.AccessibleAWTPanel |
| Nested classes/interfaces inherited from class java.awt.Container |
|---|
Container.AccessibleAWTContainer |
| Nested classes/interfaces inherited from class java.awt.Component |
|---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
| Field Summary | |
|---|---|
static int |
ANZ_EL
Anzahl der 5*8 Elemente in der Anzeige. |
protected boolean |
autoEnter
Zustand: nächste Zifferneingabe macht Enter. |
protected boolean |
enterTo0
Zustand: nächste Zifferneingabe löscht vorher X. |
protected boolean |
hex
Zustand Hex-Rechner. |
protected MatrixTextDisplay |
md
Die Anzeige. |
protected static byte[][] |
MINI_E
Darstellungsmuster für verkleinertes (5*3) E. |
protected static byte[][] |
MINI_H
Darstellungsmuster für verkleinertes (5*3) H. |
static String |
NVC
Name, Version, Copyright. |
protected long |
t
Stackregister T (Stack ist x, y, z, t) |
protected boolean |
thrOn
Laufanzeige-Thread soll laufen. |
protected long |
x
Hauptregister X (=Anzeige) |
protected long |
y
Stackregister Y (Stack ist x, y, z, t) |
protected long |
z
Stackregister Z (Stack ist x, y, z, t) |
| Fields inherited from class java.awt.Component |
|---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| Fields inherited from interface java.awt.image.ImageObserver |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
|---|---|
Rechner()
|
|
| Method Summary | |
|---|---|
void |
chgSign()
Ändern des Vorzeichens von x: x = -x. |
void |
chgXY()
Vertauschen von x und y. |
void |
clrXclrAll()
Löschen von X oder allen Registern. |
void |
enter()
Push-Operation beziehungsweise Enter. |
void |
init()
Initialisierung. |
void |
invHex()
Hex-Dez-Umschaltung. |
void |
mal()
Multiplikation x = x * y. |
void |
minus()
Subtraktion x = y - x. |
void |
mod()
Modulo (ganzzahliger Rest) x = y % x. |
void |
paint(Graphics g)
Malen der Anzeige. |
void |
plus()
Addition x = y + x. |
void |
reset()
Rücksetzen in den Einschaltzustand. |
void |
rollDown()
Herunterrollen des Stack (t wird urspr. |
void |
showX()
Neu Anzeigen von X . |
void |
teilen()
Division (ganzzahlig) x = y / x. |
void |
teilen2()
Division und Rest (ganzzahlig) x,y = (y / x), (x mod y). |
void |
update(Graphics g)
Aufdaten der Anzeige. |
void |
yHx()
Exponent (y hoch x) x = y ** x. |
void |
zif(int zif)
Eingabe einer Ziffer (0..9; ..15). |
| Methods inherited from class java.applet.Applet |
|---|
destroy, getAccessibleContext, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop |
| Methods inherited from class java.awt.Panel |
|---|
addNotify |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final String NVC
protected long x
protected long y
protected long z
protected long t
protected static final byte[][] MINI_H
protected static final byte[][] MINI_E
public static final int ANZ_EL
protected MatrixTextDisplay md
MatrixTextDisplay realisiert.ANZ_EL) 5 * 8
Anzeigeelementen mit jeweils 2 Matrixpunkten Abstand in horizontaler
Richtung (also (5+2=7)*8 Matrixpunkten) erzeugt. Die Matrixpunkte selbst
sind 4 * 4 Pixel groß und liegen dicht.
protected boolean hex
protected boolean enterTo0
protected boolean autoEnter
protected boolean thrOn
| Constructor Detail |
|---|
public Rechner()
| Method Detail |
|---|
public void init()
init in class Appletpublic void update(Graphics g)
paint() alle Matrixpunkte aktualisiert. Ein
Matrixdisplay flackert also auch ohne Zusatzmaßnahmen nicht.
update in class Containerpublic void paint(Graphics g)
update().
paint in class Containerpublic void zif(int zif)
enter() ausgeführt.
public void showX()
public void mal()
public void teilen()
public void teilen2()
chgXY() kann man beide Ergebnisse abwechselnd in's
x-Register bringen.
public void mod()
public void yHx()
public void plus()
public void minus()
public void chgSign()
public void invHex()
public void chgXY()
public void rollDown()
public void enter()
public void reset()
public void clrXclrAll()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||