Einfache Frage Panel

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe ein Button in einem Panel. Wenn ich diesen drücke, soll in das Panel ein beliebiges Label gesetzt werden. Wie geht das? Denn das Panel wurde zu Laufzeit mit leerem Konstruktor instantiiert.
 
Gut, das funktioniert auch, aber das Label ist erst sichtbar, wenn ich die Größe des Panels verändere. Wie bekomm ich das sofort hin?
 
Also hier der Code... warum funktioniert das repaint() nicht ??

public class Panel extends JFrame implements ActionListener {

private JButton button;
private JLabel label;
private static Container pane;

public Panel() {
super("Test Frame");
pane = getContentPane();
pane.setLayout(new BorderLayout());
button = new JButton("Test");
pane.add(button, BorderLayout.NORTH);
button.addActionListener(this);
}

public static void main(String[] args) {
Panel panel = new Panel();
panel.setSize(200,200);
panel.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
pane.add(new JLabel ("Hallo"), BorderLayout.SOUTH);
pane.repaint();
}
}
 
Am besten du versuchst es mal so:

Code:
class Panel extends JFrame implements ActionListener {
    private JButton button;
    private JLabel label;
    private static Container pane;

    public Panel() {
        super("Test Frame");
        pane = getContentPane();
        pane.setLayout(new BorderLayout());
        button = new JButton("Test");
        pane.add(button, BorderLayout.NORTH);
        label = new JLabel("");
        pane.add(label, BorderLayout.SOUTH);
        button.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        label.setText("Text");
    }

    public static void main(String[] args) {
        Panel panel = new Panel();
        panel.setSize(200, 200);
        panel.setVisible(true);
    }
}

Bitte benutze für Sourcecode immer das code - tag.

Karsten Voigt
http://www.java-performance-portal.org
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben