A JTree เป็นองค์ประกอบที่นำเสนอ ลำดับชั้น มุมมองของข้อมูล ผู้ใช้มีความสามารถในการ ขยาย หรือ ยุบ ต้นไม้ย่อยแต่ละต้น TreeNode อินเทอร์เฟซกำหนดวิธีการที่ต้องใช้โหนดของ JTree วัตถุ. DefaulMutableTreeNode คลาสจัดเตรียมการใช้งานเริ่มต้นของ TreeNode อินเตอร์เฟซ. เราสามารถปิดการใช้งาน Leaf ของ JTree ได้โดยการแทนที่ getTreeCellRendererComponent() วิธีการของ D ค่าเริ่มต้นTreeCellRenderer ชั้นเรียน
ไวยากรณ์
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
ตัวอย่าง
import java.awt.*; import javax.swing.tree.*; import javax.swing.*; public class JTreeLeafNodeDisableTest extends JFrame { private TreeNode treeNode; private JTree tree; public JTreeLeafNodeDisableTest() { setTitle("JTreeLeafNodeDisable Test"); treeNode = new DefaultMutableTreeNode("Country"); tree = new JTree(); tree.setModel(new DefaultTreeModel(treeNode)); tree.setCellRenderer(new CustomDefaultTreeCellRenderer()); add(tree); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JTreeLeafNodeDisableTest(); } static class CustomDefaultTreeCellRenderer extends DefaultTreeCellRenderer { @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { boolean enabled = false; sel = enabled; hasFocus = enabled; Component treeCellRendererComponent = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); treeCellRendererComponent.setEnabled(enabled); return treeCellRendererComponent; } } }
ผลลัพธ์