2013-06-20 2 views
0

JTable로 구성된 JTree를 만들려고합니다. 지금까지 Jtables를 사용하여 Jtree를 만드는 데 성공했습니다. 그러나 특정 트리 노드의 테이블 행 수는 변경할 수 없습니다. 행 수를 조정하려고 할 때마다 트리의 모든 노드 행 수가 변경됩니다. Jtable as a Jtree Node다른 행 수가있는 jtree의 jtable

내가 Trashgod의 추천에 의해 다음과 같은 코드를 작성;

나는 다음 링크에서 코드를 사용 그러나 그것은 일을 didnt한다. 당신이 ...

package helperPack; 

import java.awt.BorderLayout; 
import java.util.ArrayList; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.JTree; 
import javax.swing.SwingUtilities; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.tree.DefaultMutableTreeNode; 

public class JTreeTrial extends JFrame { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      DefaultMutableTreeNode parentNode = new DefaultMutableTreeNode("node");    
      JTree tree = new JTree(parentNode); 
      JTable table = new JTable(); 
      table.setModel(new DefaultTableModel() { 

       private static final long serialVersionUID = 1L; 

       @Override 
       public int getRowCount() { 
        return 2; 
       } 

       @Override 
       public int getColumnCount() { 
        return 2; 
       } 

       @Override 
       public Object getValueAt(int row, int column) { 
        return ":" + "row" + ":" + column; 
       } 
      }); 
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getModel().getRoot(); 
      node.setUserObject(table); 

      JTreeTrial trial=new JTreeTrial(); 
      trial.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      JScrollPane jsp = new JScrollPane(tree); 
      trial.add(jsp, BorderLayout.CENTER); 
      trial.pack(); 
      trial.setVisible(true); 
      trial.setLocationRelativeTo(null); 

     } 
    }); 

} 
} 

예 몇 가지 작업 코드를 제공하시기 바랍니다 수 : | 노드 1

|

|a|b| 
    |c|d| 

| node2 |

|e|f| 

| node3 |

|g|h| 
    |i|j| 
    |k|m| 
+0

'JTree'가 아니라'jtree'입니다. 게시물을 수정하십시오. – Maroun

+0

더 나은 도움을 받으려면 곧 [SSCCE] (http://sscce.org/), 짧고, 실행 가능하며 편집 가능합니다. – mKorbel

답변

1

대신의 테이블에게 나무를 렌더링의, 인접한 구성 요소의 단일 JTableTreeSelectionListener를 추가하고 업데이트 할 수 있습니다. 각각 TreeNodeTablemodel이 있고 setModel()을 사용하여 JTable을 업데이트하십시오. 몇 가지 관련 예가 here입니다.

+0

Will + you + please + please + working + code? – age

+0

인용 된 예제에서 효과가없는 것은 무엇입니까? 현재 접근 방식을 보여주는 [sscce] (http://sscce.org/)를 포함하도록 질문을 편집하십시오. – trashgod