Hallo nochmal.
Hab jetzt ein bisschen weitergearbeitet und einen neuen
Taschenrechner gebastelt und versucht die Tipps zu übernehmen.
Da ich im Moment nicht weiter weiß, stell ich den Code mal hier herein.
Vielleicht hat ja jemand Lust das mal zu überfliegen.
Die Version, dass man die Klasse quasi aus sich selbst heraus erstellt, hat ich noch nicht und ist
mir ohne Erklärung vorerst auch zu Komplex
Also bitte versucht nicht ganz so hochgestochene Lösungen zu schreiben, damit ich sie auch verstehe
greetz
SLi
Hab jetzt ein bisschen weitergearbeitet und einen neuen
Taschenrechner gebastelt und versucht die Tipps zu übernehmen.
Da ich im Moment nicht weiter weiß, stell ich den Code mal hier herein.
Vielleicht hat ja jemand Lust das mal zu überfliegen.
Code:
/*
* Created on 27.05.2004
* @author sliwalker
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class calculator extends JFrame implements ActionListener
{
// Eigenschaften
// Panel
JPanel poben,pmitte,punten,pgrid;
// Button
JButton bzero,beins,bzwei,bdrei,bvier,bfuenf,bsechs,bsieben,bacht,bneun,
bplus,bminus,bmal,bdurch,del_one,del_all,benter,bpunkt;
// Ergebnisfeld
JTextField ergebnis;
// Methoden
/*
// Rechenoperationen
public void multiply()
{
String s1 = zahl1.getText();
String s2 = zahl2.getText();
int num1 = Integer.parseInt(s1);
int num2 = Integer.parseInt(s2);
int ergebnis = num1 * num2;
String summe = Integer.toString(ergebnis);
erg.setText(summe);
}
public void addierac(ActionEvent ae)
{
String s1 = zahl1.getText();
String s2 = zahl2.getText();
int num1 = Integer.parseInt(s1);
int num2 = Integer.parseInt(s2);
int ergebnis = num1 + num2;
String summe = Integer.toString(ergebnis);
erg.setText(summe);
}
public void subac(ActionEvent ae)
{
String s1 = zahl1.getText();
String s2 = zahl2.getText();
int num1 = Integer.parseInt(s1);
int num2 = Integer.parseInt(s2);
int ergebnis = num1 - num2;
String summe = Integer.toString(ergebnis);
erg.setText(summe);
}*/
// Konstruktor
public calculator()
{
super("SLi`s TaschenRechner");
// Container holen, Komponenten erstellen
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
poben = new JPanel();
poben.setLayout(new FlowLayout(FlowLayout.CENTER));
pmitte = new JPanel();
pmitte.setLayout(new FlowLayout(FlowLayout.CENTER));
punten = new JPanel();
punten.setLayout(new FlowLayout(FlowLayout.CENTER));
pgrid = new JPanel();
pgrid.setLayout(new GridLayout(4,4));
bzero = new JButton(" 0 ");
beins = new JButton(" 1 ");
bzwei = new JButton(" 2 ");
bdrei = new JButton(" 3 ");
bvier = new JButton(" 4 ");
bfuenf = new JButton(" 5 ");
bsechs = new JButton(" 6 ");
bsieben = new JButton(" 7 ");
bacht = new JButton(" 8 ");
bneun = new JButton(" 9 ");
bplus = new JButton(" + ");
bminus = new JButton(" - ");
bmal = new JButton(" * ");
bdurch = new JButton(" / ");
del_one = new JButton(" Delete Last ");
del_all = new JButton(" Delete All ");
benter = new JButton(" Enter ");
bpunkt = new JButton(" . ");
ergebnis = new JTextField(20);
// Komponenten in die Panels einfügen
poben.add(ergebnis);
poben.add(del_all);
poben.add(del_one);
poben.add(benter);
pmitte.add(bsieben);
pmitte.add(bacht);
pmitte.add(bneun);
pmitte.add(bplus);
pmitte.add(bvier);
pmitte.add(bfuenf);
pmitte.add(bsechs);
pmitte.add(bminus);
punten.add(beins);
punten.add(bzwei);
punten.add(bdrei);
punten.add(bmal);
punten.add(bzero);
punten.add(bpunkt);
punten.add(bdurch);
// Panels vorplazieren
pgrid.add(pmitte);
pgrid.add(punten);
// Alles in ContentPane
contentPane.add("North",poben);
contentPane.add("South",pgrid);
/*
// Feineinstellung der Buttons
addier.setBackground(Color.GREEN); // Hintergrundfarbe der Buttons
mul.setBackground(Color.GREEN);
div.setBackground(Color.GREEN);
sub.setBackground(Color.GREEN);
addier.setForeground(Color.BLACK); // Schriftfarbe der Buttons
mul.setForeground(Color.BLACK);
div.setForeground(Color.BLACK);
sub.setForeground(Color.BLACK);
zahl1.setBackground(Color.gray); // Textfelder
zahl1.setForeground(Color.GREEN);
zahl2.setBackground(Color.gray);
zahl2.setForeground(Color.GREEN);
erg.setBackground(Color.GREEN); // Hintergrundfarbe de Ergebnisses
erg.setForeground(Color.BLACK);
// Feineinstellung des Haupt contentPane
p1.setBackground(Color.GRAY);
p2.setBackground(Color.GRAY);
p3.setBackground(Color.BLACK);
Font f = new Font("Courier New", Font.BOLD, 15);
*/
// ActionListener und Buttons verbinden
bzero.addActionListener(this);
beins.addActionListener(this);
bzwei.addActionListener(this);
bdrei.addActionListener(this);
bvier.addActionListener(this);
bfuenf.addActionListener(this);
bsechs.addActionListener(this);
bsieben.addActionListener(this);
bacht.addActionListener(this);
bneun.addActionListener(this);
bplus.addActionListener(this);
bminus.addActionListener(this);
bmal.addActionListener(this);
bdurch.addActionListener(this);
del_one.addActionListener(this);
del_all.addActionListener(this);
benter.addActionListener(this);
bpunkt.addActionListener(this);
// Aktionen der Buttons bei Kopfdruck festlegen
bzero.setActionCommand("0");
beins.setActionCommand("1");
bzwei.setActionCommand("2");
bdrei.setActionCommand("3");
bvier.setActionCommand("4");
bfuenf.setActionCommand("5");
bsechs.setActionCommand("6");
bsieben.setActionCommand("7");
bacht.setActionCommand("8");
bneun.setActionCommand("9");
bplus.setActionCommand("+");
bminus.setActionCommand("-");
bmal.setActionCommand("*");
bdurch.setActionCommand("/");
del_one.setActionCommand("#");
del_all.setActionCommand("##");
benter.setActionCommand("!");
bpunkt.setActionCommand(".");
}
// ActionListener
public void actionPerformed(ActionEvent e)
{
String c = e.getActionCommand(); //holt sich den ActionCommand
if( c.equals("1") )// Zahlen
{
ergebnis.add("1", ergebnis);
}
if( c.equals("2") )
{
ergebnis.add("2", ergebnis);
}
if( c.equals("3") )
{
ergebnis.add("3", ergebnis);
}
if( c.equals("4") )
{
ergebnis.add("4", ergebnis);
}
if( c.equals("5") )
{
ergebnis.add("5", ergebnis);
}
if( c.equals("6") )
{
ergebnis.add("6", ergebnis);
}
if( c.equals("7") )
{
ergebnis.add("7", ergebnis);
}
if( c.equals("8") )
{
ergebnis.add("8", ergebnis);
}
if( c.equals("9") )
{
ergebnis.add("9", ergebnis);
}
if( c.equals("0") )
{
ergebnis.add("0", ergebnis);
}
if( c.equals("+") )//Rechenoperanden
{
ergebnis.add("+", ergebnis);
}
if( c.equals("-") )
{
ergebnis.add("-", ergebnis);
}
if( c.equals("*") )
{
ergebnis.add("*", ergebnis);
}
if( c.equals("/") )
{
ergebnis.add("/", ergebnis);
}
if( c.equals("!") )//Sonderbuttons
{
ergebnis.add("!", ergebnis);
}
if( c.equals("#") )
{
ergebnis.add("#", ergebnis);
}
if( c.equals("##") )
{
ergebnis.add("##", ergebnis);
}
if( c.equals(".") )
{
ergebnis.add(".", ergebnis);
}
}
}
public class rechner2
{
public static void main(String[] args)
{
calculator c = new calculator();
c.setBounds(250,250,350,150);
c.show();
}
}
Die Version, dass man die Klasse quasi aus sich selbst heraus erstellt, hat ich noch nicht und ist
mir ohne Erklärung vorerst auch zu Komplex
Also bitte versucht nicht ganz so hochgestochene Lösungen zu schreiben, damit ich sie auch verstehe
greetz
SLi