Всем привет! Я новичoк. Задача: нужно сделать Frame, справа - дерево, слева- JTabbedPane При выборе в дереве выбранное должно отображаться в актуальной закладке, и соответственно, если бегаю по закладкам, тоже должно все меняться. Перемещения по дереву, вроде удаются, а вот между закладками...  В общем, запуталась я. Буду рада любой помощи ! Юля Код |
package dialogs;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*; import javax.swing.event.*; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultTreeSelectionModel; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel;
public class TestKartei extends JTabbedPane { protected static DefaultMutableTreeNode root; protected static DefaultTreeModel treeModel; protected static JTree tree; static String auswahl=null;
static JTabbedPane tp;
public TestKartei() { super(); // TODO Auto-generated constructor stub }
/** * @param args */ public static void main(String[] args) { JFrame wnd = new JFrame ("My"); Container cp = wnd.getContentPane(); cp.setLayout(new GridLayout(1,2)); createKartei (cp); createBaum (cp); wnd.setLocation(255,255); wnd.setSize(550,300); wnd.setVisible(true); } public static void createKartei (Container cp) { tp = new JTabbedPane(); JPanel p1 = new JPanel(); p1.setName("p1"); JPanel p2 = new JPanel(); p2.setName("p2"); tp.add("Panel1",p1); tp.add("Panel2",p2); cp.add(tp, BorderLayout.CENTER); tp.addChangeListener( new ChangeListener() { public void stateChanged (ChangeEvent e) { JTabbedPane tp1 = (JTabbedPane)e.getSource(); int i = tp1.getSelectedIndex(); JPanel panel = (JPanel)tp1.getComponent(i); String name = panel.getName(); System.out.println("Index "+i); System.out.println("Name "+name); System.out.println("Auswahl "+auswahl); //refresh(); } }); } public static void createBaum(Container cp) { //JTree erzeugen und Einfachselektion aktivieren root = new DefaultMutableTreeNode("Netz"); DefaultMutableTreeNode node = new DefaultMutableTreeNode( "localhost"); root.add( node ); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode( "Knoten1 "); root.add( node1 ); treeModel = new DefaultTreeModel(root); tree = new JTree(treeModel); TreeSelectionModel tsm = new DefaultTreeSelectionModel(); tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setSelectionModel(tsm);
System.out.println("Selektiert ist "+ tsm.getSelectionRows()); tree.setRootVisible(true); //JTree einfügen cp.add(new JScrollPane(tree), BorderLayout.CENTER); tree.addTreeSelectionListener( new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent event) { TreePath tp = event.getNewLeadSelectionPath(); DefaultMutableTreeNode node; node = (DefaultMutableTreeNode)tp.getLastPathComponent(); if(tp!=null && node!=root ) // Ist was ausgewählt {
auswahl = node.toString(); System.out.println("Selektiert in Tree " + auswahl ); refresh(); } else { System.out.println("Kein Element selektiert" ); auswahl =""; } System.out.println("Selektiert nach if " + auswahl ); } } ); } public static void refresh () { int i = tp.getSelectedIndex(); System.out.println(" SelectedIp in createPanelLabel " + auswahl); System.out.println(" Index von Panel in createPanelLabel " + i); //System.out.println("SelectedComponent "+ tp1.getSelectedComponent().getName()); String panelName = tp.getSelectedComponent().getName(); JPanel panel = (JPanel)tp.getSelectedComponent(); panel.removeAll(); /// ///// tp.remove(i); panel.add(new JLabel(auswahl)); tp.insertTab(panelName, null, panel, null, i); tp.setSelectedComponent(panel);
}
}
|
Это сообщение отредактировал(а) Julija - 27.5.2006, 00:41
|