Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Refresh JTabbedPane как? 
:(
    Опции темы
Julija
Дата 26.5.2006, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



 Всем привет! 
 
Я новичoк.
Задача:
нужно сделать Frame, справа - дерево, слева- JTabbedPane 
При выборе в дереве выбранное должно отображаться в актуальной закладке, и соответственно, если бегаю по закладкам, тоже должно все меняться. Перемещения по дереву, вроде удаются, а вот между закладками... smile
В общем, запуталась я. 
Буду рада любой помощи !


Юля

Код


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
PM MAIL   Вверх
powerOn
Дата 27.5.2006, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Создай слушателя изменеий (ChangeListener) для JTabbedPane. Он будет реагировать когда произойдет смена текущей вкладки. Реализуй реакцию, которая будет выделять соответствующий узел дерева. Вот далеко не добработанный пример, но идея в нем просматривается  smile : 
Код


public class NewJFrame extends javax.swing.JFrame {
    

    public NewJFrame() {
        initComponents();
    }
    
    private void initComponents() {
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTree1 = new javax.swing.JTree();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTabbedPane1.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jTabbedPane1StateChanged(evt);
            }
        });

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 553, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 385, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("tab1", jPanel1);

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 553, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 385, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("tab2", jPanel2);

        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 553, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 385, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("tab3", jPanel3);

        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 553, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 385, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("tab4", jPanel4);

        getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        jScrollPane1.setViewportView(jTree1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.EAST);

        pack();
    }

    private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt) {
        System.out.println("current tab index: " + jTabbedPane1.getModel().getSelectedIndex());
        System.out.println("current tab name: "  + jTabbedPane1.getTitleAt(jTabbedPane1.getModel().getSelectedIndex()));
        jTree1.setSelectionRow(jTabbedPane1.getModel().getSelectedIndex());
    }
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTree jTree1;
 
}




 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.