1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.FileNode;
import org.jdesktop.swingx.treetable.FileSystemModel;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class TableNTreeTableTest extends JPanel {
public TableNTreeTableTest() {
super (new BorderLayout());
final MyModel tree = new MyModel();
JXTreeTable treeTable = new JXTreeTable(tree);
treeTable.setColumnControlVisible(true);
treeTable.getColumnModel().getColumn(0).setPreferredWidth(1000);
treeTable.getColumnModel().getColumn(1).setPreferredWidth(10);
treeTable.getColumnModel().getColumn(2).setPreferredWidth(10);
treeTable.getColumnModel().getColumn(3).setPreferredWidth(10);
add(new JScrollPane(treeTable));
JButton btnAddToTreeTableBAD = new JButton("Addchild (BAD)");
btnAddToTreeTableBAD.addActionListener(new
ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.addNode(new FileNode(new
File("c:\\boot.ini")), (FileNode) ((FileNode)
tree.getRoot()).getChildAt(0));
}
});
add(btnAddToTreeTableBAD, BorderLayout.NORTH);
JButton btnAddToTreeTableGOOD = new JButton("Addchild (GOOD)");
btnAddToTreeTableGOOD.addActionListener(new
ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.addNode(new FileNode(new
File("c:\\boot.ini")), (FileNode)
tree.getRoot());
}
});
add(btnAddToTreeTableGOOD, BorderLayout.SOUTH);
}
public static void main(String[] args) {
JFrame frame = new JFrame("test");
frame.setContentPane(new TableNTreeTableTest());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 600);
frame.setVisible(true);
}
}
class MyModel extends FileSystemModel {
public void addNode(FileNode value, FileNode parentNode) {
parentNode.add(value);
nodesWereInserted(parentNode, new
int[]{parentNode.getChildCount() - 1});
}
} |
Partager