![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| marik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 30.9.2008 Репутация: нет Всего: нет |
Всем привет! Разрабатываю дерево, элементами которого являеются таблицы. Т.е. при развертывании ноды, открывается список таблиц. Прикрепил код, который делаю. Что-то не работает. А именно не отображаются таблицы в дереве.
Если в двух словах, то делаю так. Переопеределяю класс JTree, в нем же переопределяю TreeCellRenderer. Пожалуйста помогите!!!!!!!!!!!!!!!!!!!!!!! Присоединённый файл ( Кол-во скачиваний: 4 )
tabletreelast.rar 2,31 Kb |
|||
|
||||
| marik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 30.9.2008 Репутация: нет Всего: нет |
Может так проще будет.
package treetable; import javax.swing.JTable; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.MutableTreeNode; /** * * @author tb */ public class jFrame extends javax.swing.JFrame { /** Creates new form jFrame */ public jFrame() { initComponents(); JTable table = new JTable(new String [][]{{"1", "2"}, {"3", "4"}}, new String [] {"c1", "c2"}); DefaultMutableTreeNode main = new DefaultMutableTreeNode("main"); main.add(new DefaultMutableTreeNode(table)); JTreeTable tree = new JTreeTable(); tree.setModel(new DefaultTreeModel(main)); jScrollPane1.setViewportView(tree); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(66, 66, 66) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 393, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(42, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(62, 62, 62) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 241, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(106, Short.MAX_VALUE)) ); pack(); }// </editor-fold> /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new jFrame().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JScrollPane jScrollPane1; // End of variables declaration } --------------------------------------------------------------------- package treetable; import java.awt.Component; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; /** * * @author tb */ public class JTreeTable extends javax.swing.JTree{ public JTreeTable(){ super(); this.setCellRenderer(new JTreeCellRendererExt()); } public JTreeTable(DefaultTreeModel model){ super(model); this.setCellRenderer(new JTreeCellRendererExt()); } private DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); public class JTreeCellRendererExt extends javax.swing.JTable implements javax.swing.tree.TreeCellRenderer{ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { if (!(value instanceof javax.swing.JTable)) return renderer.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); return this; } } } |
|||
|
||||
| marik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 30.9.2008 Репутация: нет Всего: нет |
Люди, неужели никто не знает, как быть в данном случае? =)))
|
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
чо то не получается
здесь надо три раза мышкой по листу щелкнуть, что бы таблица появилась:
|
|||
|
||||
| Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
dorogoyIV,
|
|||
|
||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: нет Всего: 10 |
Это стандартно делается, если дерево пустое. Наверное, что-то вроде демонстрации работы.
Это сообщение отредактировал(а) Старовъръ - 6.10.2008, 19:45 -------------------- |
|||
|
||||
| Lisus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 21.10.2007 Репутация: 1 Всего: 2 |
||||
|
||||
| Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
Вот чего нашел
![]() http://java-treetable.vista-files.org/ Но это платная библиотека, как я понял И вот http://java.sun.com/products/jfc/tsc/articles/treetable1/ может поможет? |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |