T
Twanger
Gast
hi leute,
ich möchte gerne wissen, wie es möglich ist den text eines labels, das auf dem bildschirm ausgegeben wurde ändern kann. in meinem programm tipp ich 5 zahlen ein, klick auf berechnen und dann werden sie ausgegeben. wenn ich z. B. buchstaben eintipp wird eine fehlermeldung ausgegeben, tipp ich dann wieder zahlen ein und geh auf "berechnen" dann wird das ergebnis natürlich nicht mehr ausgegeben, da auf der stelle bereits die fehlermeldung steht.
hier der code:
ich möchte gerne wissen, wie es möglich ist den text eines labels, das auf dem bildschirm ausgegeben wurde ändern kann. in meinem programm tipp ich 5 zahlen ein, klick auf berechnen und dann werden sie ausgegeben. wenn ich z. B. buchstaben eintipp wird eine fehlermeldung ausgegeben, tipp ich dann wieder zahlen ein und geh auf "berechnen" dann wird das ergebnis natürlich nicht mehr ausgegeben, da auf der stelle bereits die fehlermeldung steht.
hier der code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.print.*;
import java.lang.Double;
public class MultiGUI extends Applet implements MouseListener,WindowListener,ActionListener,ItemListener,MouseMotionListener {
double zahl;
public static TextField textfield;
public static TextField textfield2;
public static TextField textfield3;
public static TextField textfield4;
public static Font meinfont;
public static Label label;
public static Label label2;
public static Label label3;
public static Label label4;
public static Label label5;
public static Button button;
public static Frame f;
public static Applet a;
public static Checkbox r1;
public static Checkbox r2;
public static CheckboxGroup radio;
public static boolean mwst=false;
public static void main(String[] args) {
Frame f = new Frame("Kalkulator");
f.setSize(800,350); // Größe ändern (breite, höhe)
f.setBackground(Color.GREEN);
f.setVisible(true); // Fenster sichtbar machen
a = new MultiGUI(); // Applet-Context holen
f.add(a); // Applet-Eigenschaften zum Fenster hinzufügen
// "Schließen"-Knopf:
// Verweis auf die in dieser Klasse definierten WindowAdapter-Mehoden
f.addWindowListener((MultiGUI)a);
// Maus-Events,
// Verweis auf die in dieser Klasse definierten MouseAdapter-Mehoden
f.addMouseListener((MultiGUI)a);
a.init(); // paint(g); wird hier nicht gebraucht.
a.start();
f.setVisible(true); // Fenster und Buttons sichtbar machen
} // Ende Applikation, ab hier Applet-Stuff.
// paint() entspricht dem "main" bei Applikationen, wird aber
// _jedesmal_ beim Zeichnen/Refresh des Applet aufgerufen.
// Graphics g wird vom Browser geliefert und hat die Größe des
// width=... und height=... Kontextes im APPLET-Tag in der
// HTML-Datei.
public void paint(Graphics g) { } // Hier ausnahmsweise leer.
// init() wird nur einmalig zu Beginn aufgerufen
public void init() {
// Layout in 2 Zeilen a 4 Spalten
//setLayout(new GridLayout(2, 4));
setLayout(null); // freies Layout mit setBounds()
meinfont = new Font("SansSerif",Font.BOLD,16);
//1. Zeile
label = new Label("Anzahl der Benutzer des Programms:");
label.setFont(meinfont);
label.setBounds(10,10,400,30);
add(label);
textfield = new TextField(20);
textfield.setFont(meinfont);
textfield.setBounds(430,10,280,30); // s.o.
add(textfield);
textfield.addActionListener(this);
//2. Zeile
label2 = new Label("Preis Fremdlizenzierung je Benutzer:");
label2.setFont(meinfont);
label2.setBounds(10,50,400,30);
add(label2);
textfield2 = new TextField(20);
textfield2.setFont(meinfont);
textfield2.setBounds(430,50,280,30); // s.o.
add(textfield2);
textfield2.addActionListener(this);
//3. Zeile
label3 = new Label("Geschätzte Anzahl an Programmierstunden:");
label3.setFont(meinfont);
label3.setBounds(10,90,400,30);
add(label3);
textfield3 = new TextField(20);
textfield3.setFont(meinfont);
textfield3.setBounds(430,90,280,30); // s.o.
add(textfield3);
textfield3.addActionListener(this);
//4. Zeile
label4 = new Label("Preis je Programmierstunde:");
label4.setFont(meinfont);
label4.setBounds(10,130,400,30);
add(label4);
textfield4 = new TextField(20);
textfield4.setFont(meinfont);
textfield4.setBounds(430,130,280,30); // s.o.
add(textfield4);
textfield4.addActionListener(this);
radio = new CheckboxGroup();
r1 = new Checkbox("Mit MwSt. berechnen",radio,true);
r2 = new Checkbox("Ohne MwSt. berechnen",radio,true);
r1.setFont(meinfont);
r2.setFont(meinfont);
r1.setBounds(10,170,200,30);
r2.setBounds(250,170,200,30);
add(r1);
add(r2);
r1.addItemListener(this);
r2.addItemListener(this);
button = new Button("Berechnen");
button.setFont(meinfont);
// Der Button soll 10 Punkte vom linken, 10 vom rechten
// Rand entfernt sein, und 80 Pixel breit, 20 Pixel
// hoch.
button.setBounds(10,210,400,30);
add(button);
button.addActionListener(this);
// Mausbewegungs-Listener einschalten.
addMouseMotionListener(this);
}
public void actionPerformed(ActionEvent e) {
try {if (mwst == true) { zahl = Double.parseDouble(textfield.getText());
zahl *= Double.parseDouble(textfield2.getText());
zahl += Double.parseDouble(textfield3.getText()) * Double.parseDouble(textfield4.getText());
zahl*=1.19;
label5 = new Label(""+zahl);
label5.setFont(meinfont);
label5.setBounds(10,260,400,30);
add(label5);
label5.setText(""+zahl);}
else if (mwst == false) {zahl = Double.parseDouble(textfield.getText());
zahl *= Double.parseDouble(textfield2.getText());
zahl += Double.parseDouble(textfield3.getText()) * Double.parseDouble(textfield4.getText());
label5 = new Label(""+zahl);
label5.setFont(meinfont);
label5.setBounds(10,260,400,30);
add(label5); }}
catch (NumberFormatException error) {
label5 = new Label("Bitte geben Sie eine korrekte Zahl ein");
label5.setFont(meinfont);
label5.setBounds(10,260,400,30);
add(label5); }
}
public void itemStateChanged(ItemEvent e) {
if (r1.getSelectedObjects() == null) { mwst = false; }
else { mwst = true; }
}
public void mouseMoved(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
}
// Klick auf "Schließen"-Button beendet das Programm
public void windowClosing(WindowEvent e) { System.exit(0); }
// Mausklick ins Fenster beendet das Programm ebenfalls.
public void mouseClicked(MouseEvent e) { }
// Diese Events werden ignoriert.
public void windowOpened(WindowEvent e) { System.out.println("Fenster wurde geöffnet.");}
public void windowClosed(WindowEvent e) { System.out.println("Fenster wurde geschlossen."); }
public void windowIconified(WindowEvent e) { System.out.println("Fenster wurde ikonifiziert."); }
public void windowDeiconified(WindowEvent e)
{
System.out.println("Fenster wurde wiederhergestellt, Inhalt neu zeichnen.");
}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}