Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào chúng ta có thể vô hiệu hóa lá JTree trong Java?


A JTree là một thành phần trình bày phân cấp xem dữ liệu. Người dùng có khả năng mở rộng hoặc thu gọn cây con riêng lẻ. A TreeNode giao diện xác định các phương thức phải được triển khai các nút của JTree vật. DefaulMutableTreeNode lớp cung cấp triển khai mặc định của TreeNode giao diện. Chúng tôi có thể vô hiệu hóa lá JTree bằng cách ghi đè getTreeCellRendererComponent () phương pháp của D efaultTreeCellRenderer lớp học.

Cú pháp

public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)

Ví dụ

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;
      }
   }
}

Đầu ra

Làm thế nào chúng ta có thể vô hiệu hóa lá JTree trong Java?