Hi!
Nachdem mich die Forensuche nicht weiterbrachte, versuche ich es hier. Bestimmt wurde die Frage auch schon mehrmals beantwortet, aber ich kann z.T mit den Antworten nichts anfangen (z.b. "häng doch einfach einen Listener ans Panel")...
Ich möchte ein JPanel aktualisieren..
ein kleines Bsp. (welches natürlich nicht geht...):
gruß ManuP
Nachdem mich die Forensuche nicht weiterbrachte, versuche ich es hier. Bestimmt wurde die Frage auch schon mehrmals beantwortet, aber ich kann z.T mit den Antworten nichts anfangen (z.b. "häng doch einfach einen Listener ans Panel")...
Ich möchte ein JPanel aktualisieren..
ein kleines Bsp. (welches natürlich nicht geht...):
Code:
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* @author Manu
*
*/
public class Test extends JFrame
{
private JPanel masterPanel, mittePanel;
private JButton btn;
private Vector v;
private String s;
public static void main(String[] args)
{
Test t = new Test();
t.initGUI();
t.setVisible(true);
}
public Test()
{
v = new Vector();
s = new String("noch eins");
v.add(s);
}
public void initGUI()
{
this.setTitle("test");
this.setSize(300, 200);
masterPanel = new JPanel();
masterPanel.setLayout(new BorderLayout());
this.getContentPane().add(masterPanel, BorderLayout.CENTER);
btn = new JButton("Eins Hinzu");
//Wenn ich hier den button hinzufüge statt unter der Liste, dann
//funktioniert alles so, wie gewünscht.
//masterPanel.add(btn, BorderLayout.WEST);
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
v.add(s);
initGUI();
setVisible(true);
}
});
mittePanel = new JPanel();
mittePanel.setLayout(new GridBagLayout());
masterPanel.add(mittePanel, BorderLayout.CENTER);
masterPanel.add(new JLabel("Vectorgroesse: " + v.size()),
BorderLayout.NORTH);
for (int i = 0; i < v.size(); i++)
mittePanel.add(new JLabel((String) v.get(i) + " nr: " + i),
new GridBagConstraints(1, i, 1, 1, 0.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(0, 0, 0, 0), 0, 0));
mittePanel.add(btn, new GridBagConstraints(1, 100, 1, 1, 0.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0,
0, 0, 0), 0, 0));
}
}
gruß ManuP