Hiho,
ich weiß das Thema wurde schon sehr oft durchgesprochen aber leider hab ich keine richtige Lösungen gefunden.
Folgendes Problem.
Ich habe eine eine Class A die meine MainFrame ist.
So mein Problem, wenn ich auf ein Node im Tree klicke dann soll der Frame A oder jedenfalls myPanel neu geladen werden. Jedoch lädt er das Frame erst neu wenn man die Größe des Frames verändert oder wenn ich den Frame minimiere oder maximiere. Jedoch nicht wenn ich ein repaint irgendwo einsetze.
Würde mich freuen wenn mir einer ne Anwort geben könnte.
Danke schon mal.
ich weiß das Thema wurde schon sehr oft durchgesprochen aber leider hab ich keine richtige Lösungen gefunden.
Folgendes Problem.
Ich habe eine eine Class A die meine MainFrame ist.
Code:
class A extends JFrame {
private JPanel mainPanel;
public A(){
super(str);
mainPanel = new B();
GridBagLayout gbl = new GridBagLayout();
addComponent( this.contentPane(), gbl, mainPanel, 0, 0, 1, 1, 1.0, 1.0 );
}
...
}
class B extends JPanel implements TreeSelectionListener {
private JTree tree;
private JPanel myPanel;
public B() {
super();
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
createNodes(top);
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
JScrollPane treeView = new JScrollPane(tree);
tree.setSelectionRow(0);
treeView.setMinimumSize(new Dimension(200, 300));
treeView.setPreferredSize(new Dimension(200, 300));
// x y w h wx wy
addComponent(this, gbl, treeView, 0, 0, 1, 1, 0, 0);
// x y w h wx wy
addComponent(this, gbl, myPanel, 1, 0, 1, 1, 1.0, 1.0);
}
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
GridBagLayout gbl = new GridBagLayout();
if (node == null) return;
int select[] = tree.getSelectionRows();
if (select[0] == 0) {
myPanel.removeAll();
myPanel.add(new JLabel("Main Tab" + tabs));
} else {
myPanel.removeAll();
myPanel.add(new JLabel("Unter Tab" + tabs));
}
tabs++;
}
...
}
So mein Problem, wenn ich auf ein Node im Tree klicke dann soll der Frame A oder jedenfalls myPanel neu geladen werden. Jedoch lädt er das Frame erst neu wenn man die Größe des Frames verändert oder wenn ich den Frame minimiere oder maximiere. Jedoch nicht wenn ich ein repaint irgendwo einsetze.
Würde mich freuen wenn mir einer ne Anwort geben könnte.
Danke schon mal.