PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AWT-Anwendung zeigt Inhalte aus Container nicht richtig an!



Gurke1509
01-09-2006, 12:58
Hallo zusammen.
Erst einmal vorweg:
Ich programmiere noch nicht so lange. Wir lernen es zur Zeit in der Schule.
Wir haben dort ein Programm geschrieben, welches erst einmal nur 2 Zahlen addieren soll.
Nur wird der Fensterinhalt hier bei mir zu Hause nur fehlerhaft angezeigt.
Nämlich wird immer das letzte Objekt, welches ich dem Container hinzufüge im kompletten Fenster angezeigt. Leider haben wir AWT und Swing kaum besprochen und ich kann daher auch nicht im geringsten sagen, woran das liegt.
Vielleicht kann mir ja einer von euch weiterhelfen.
Hier folgt der Code:


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Grafischflaesche
{
private JFrame fenster;
private Container fensterinhalt;
private JLabel lblzahlEingabe, lblzerlegerEingabe, lblergebnis, lblergebnisausgabe;
private JTextField tfzahlEingabe, tfzerlegerEingabe;
private JButton btrechnen;
private Knopfdruckempfaenger alempfaenger;

public static void main(String[] args)
{
new Grafischflaesche();
}

public Grafischflaesche()
{
fensterAnlegen();
}

public void fensterAnlegen()
{
//Fenster erzeugen
JFrame.setDefaultLookAndFeelDecorated(true);
fenster = new JFrame("Programmfenster");
fenster.setSize(520,300);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CL OSE);

//Fensterinhalt erzeugen
fensterinhalt = fenster.getContentPane();

lblzahlEingabe = new JLabel("Zahl:");
lblzerlegerEingabe = new JLabel("Gr. Zerleger:");
lblergebnis = new JLabel("Ergebnis");
lblergebnisausgabe = new JLabel();
tfzahlEingabe = new JTextField();
tfzerlegerEingabe = new JTextField();
btrechnen = new JButton("Rechnen!");
btrechnen.addActionListener(new ActionListener() {public void actionPerformed (ActionEvent e){rechnen();}});

//Größen und Farben
lblzahlEingabe.setBounds(25,34,92,39);
lblzahlEingabe.setBackground(new Color(214,233,229));
lblzerlegerEingabe.setBounds(25,111,92,39);
lblzerlegerEingabe.setBackground(new Color(214,233,229));
lblergebnis.setBounds(25,184,92,39);
lblergebnis.setBackground(new Color(214,233,229));
tfzahlEingabe.setBounds(155,34,92,39);
tfzerlegerEingabe.setBounds(155,111,92,39);
lblergebnisausgabe.setBounds(155,184,92,39);
lblergebnisausgabe.setBackground(new Color(214,233,229));
btrechnen.setBounds(350,34,100,100);
btrechnen.setBackground(new Color(214,233,229));

//Einfügung in den Container
fensterinhalt.add(lblzahlEingabe);
fensterinhalt.add(lblzerlegerEingabe);
fensterinhalt.add(lblergebnis);
fensterinhalt.add(lblergebnisausgabe);
fensterinhalt.add(tfzahlEingabe);
fensterinhalt.add(tfzerlegerEingabe);
fensterinhalt.add(btrechnen);

//Fenster anzeigen
fenster.setVisible(true);





}

public void rechnen()
{
}
public class Knopfdruckempfaenger implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int zahl = Integer.parseInt(tfzahlEingabe.getText());
int zerleger = Integer.parseInt(tfzerlegerEingabe.getText());
lblergebnisausgabe.setText(Integer.toString(zahl + zerleger));
}
}

}


Hier das Bild:
Bild (http://www.andreas-roye.de/tobias/java.jpg)

bischi
01-09-2006, 16:15
fensterinhalt.setLayout(null); // direkt nach dem initialisieren

Nützt das was? Sonst findest du bei mir auf der HP jede Menger gute Online-Bücher (von denen du dir eines aussuchen kannst, das dir passt).

www.walfisch.ch.vu --> Tuts und Bücher --> Java

MfG Bischi

Gurke1509
02-09-2006, 14:36
Danke, das hat geholfen.