0

JTables で構成される JTree を作成しようとしています。ここまでで、Jtables で Jtree を作成することに成功しましたが、特定のツリー ノードのテーブルの行数を変更することはできません。行数を調整しようとすると、ツリーのノードのすべての行数が変更されます。

次のリンクのコードを使用しました。

Jtree ノードとしての Jtable

Trashgod の推薦により、次のコードを書きました。しかし、うまくいきませんでした。動作するコードを教えてください..

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|

|ノード2|

   |e|f|

|ノード3|

   |g|h|
   |i|j|
   |k|m|
4

1 に答える 1

1

ツリーのテーブルをレンダリングする代わりに、隣接するコンポーネントにTreeSelectionListener単一の を追加して更新します。JTableそれぞれTreeNodeに を含めTablemodel、 を使用setModel()して を更新しJTableます。関連するいくつかの例をここに引用します。

于 2013-06-21T08:04:11.663 に答える