C
Christian76
Gast
Hallo,
ich habe ein kleines Problem mit JFrames oder JPanels.
Ich will dynamisch zur Laufzeit JButtons zu einem JPanel durch JButtonklick hinzufügen. Das klappt soweit auch
schon ganz gut. Die Buttons werden erstellt. Aber sie werden erst angezeigt wenn ich das JFrame neu skaliere.
Könnt ihr mir die Methode nennen die ich hinzufügen muss damit es auch ohne das funktioniert?
Gruß
-Christian
Hier mein SC:
ich habe ein kleines Problem mit JFrames oder JPanels.
Ich will dynamisch zur Laufzeit JButtons zu einem JPanel durch JButtonklick hinzufügen. Das klappt soweit auch
schon ganz gut. Die Buttons werden erstellt. Aber sie werden erst angezeigt wenn ich das JFrame neu skaliere.
Könnt ihr mir die Methode nennen die ich hinzufügen muss damit es auch ohne das funktioniert?
Gruß
-Christian
Hier mein SC:
Code:
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.Color;
import javax.swing.JScrollPane;
public class Main extends JFrame
{
JPanel panFenster;
JPanel panButton;
public Main()
{
this.setTitle("dynamsiches Buttonfenster");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setLayout( new GridLayout(2,1) );
// JFrame mit 2 Panels
panFenster = new JPanel();
panButton = new JPanel();
// das obere wo die Buttons reinkommen bekommt ein Flowlayout damit die Buttons sich nebeneinander anordnen.
panFenster.setLayout(new FlowLayout());
panFenster.setBackground(Color.blue);
// unten kommt ein Button rein, um neue Buttons zu erstellen
JButton Knopf = new JButton( "neues Fenster" );
// Oberes Panel an ActionListener Klasse übergeben.
Fenster objFenster = new Fenster(panFenster);
Knopf.addActionListener(objFenster);
panButton.add(Knopf);
this.add(panFenster);
this.add(panButton);
this.setVisible(true);
this.pack();
}
public static void main(String[] args)
{
new Main();
}
}
class Fenster implements ActionListener
{
JPanel panFenster;
Fenster(JPanel Fenster)
{
panFenster=Fenster;
}
public void actionPerformed(ActionEvent e)
{
panFenster.add(new JButton("Neues Fenster"));
}
}