L
Lu
Gast
Hallo,
ich habe ein Problem mit dem ActionListener, bzw. mir ist nicht klar warum durch einen Klick auf den JButton Label2 nicht im ChildFrame angezeigt wird.
Ich wäre für jede Hilfe dankbar.
Hier mal ein Listing, welches wohl mein Anliegen verdeutlicht:
[Edit von Beni: es gibt zwei Codetags, Ende + Anfang... ]
ich habe ein Problem mit dem ActionListener, bzw. mir ist nicht klar warum durch einen Klick auf den JButton Label2 nicht im ChildFrame angezeigt wird.
Ich wäre für jede Hilfe dankbar.
Hier mal ein Listing, welches wohl mein Anliegen verdeutlicht:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DesktopFrame
extends JFrame
{
private JDesktopPane desk;
public DesktopFrame()
{
super("DesktopFrame");
this.desk = new JDesktopPane();
desk.setDesktopManager(new DefaultDesktopManager());
setContentPane(desk);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
setVisible(false);
dispose();
System.exit(0);
}
});
}
public void addChild(JInternalFrame child, int x, int y)
{
child.setLocation(x, y);
child.setSize(300, 250);
child.setDefaultCloseOperation(
JInternalFrame.DISPOSE_ON_CLOSE
);
desk.add(child);
child.setVisible(true);
}
}
class ChildFrame
extends JInternalFrame
implements ActionListener
{
Container contentPane = getContentPane();
public ChildFrame(String title)
{
super(title, true, true);
contentPane.setLayout(null);
label_anzeigen();
JButton button = new JButton("Label anzeigen");
button.setBounds(10,10,150,20);
contentPane.add(button);
button.addActionListener(this);
}
public void label_anzeigen()
{
JLabel label1 = new JLabel("Label 1");
label1.setBounds(10,40,150,20);
contentPane.add(label1);
}
public void actionPerformed(ActionEvent ev)
{
JLabel label2 = new JLabel("Label 2");
label2.setBounds(10,70,100,20);
contentPane.add(label2);
}
}
public class Test
{
public static void main(String[] args)
{
DesktopFrame desktop = new DesktopFrame();
desktop.setLocation(100, 100);
desktop.setSize(400, 300);
desktop.setVisible(true);
desktop.addChild(new ChildFrame("ChildFrame"), 10, 10);
}
}
[Edit von Beni: es gibt zwei Codetags, Ende + Anfang... ]