Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJTreeのリーフを無効にするにはどうすればよいですか?


JTree 階層を提示するコンポーネントです データの表示。ユーザーは拡張することができます または崩壊 個々のサブツリー。 TreeNode インターフェイスは、 JTreeのノードに実装する必要があるメソッドを定義します 物体。 DefaulMutableTreeNode クラスは、 TreeNodeのデフォルトの実装を提供します インターフェース。 getTreeCellRendererComponent()をオーバーライドすることで、JTreeのリーフを無効にできます。 Dの方法 efaultTreeCellRenderer クラス。

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

出力

JavaでJTreeのリーフを無効にするにはどうすればよいですか?


  1. JavaでJPanelのpaintComponent()メソッドを実装するにはどうすればよいですか?

    JPanel は軽量のコンテナであり、見えない コンポーネント Javaで。 JPanelのデフォルトのレイアウトはFlowLayout 。 JPanelを作成したら、他のコンポーネントを JPanelに追加できます。 add()を呼び出してオブジェクトを作成します コンテナから継承されたメソッド クラス。 paintComponent() このメソッドは、 JPanelで何かを描画するために必要です 背景色を描く以外。このメソッドは、 JPanelにすでに存在します スーパーを使用する必要があるようにクラス このメソッドに何かを追加し、グラフィックスを取る宣言 オブジェクト パラメータ

  2. JavaでJFrameの最大化ボタンを無効にするにはどうすればよいですか?

    JFrame javaxのクラスです。スイング パッケージであり、 java.awt.frameを拡張できます クラス。 トップレベルウィンドウです ボーダーとタイトルバー付き。 JFrame クラスには、カスタマイズに使用できる多くのメソッドがあります。 JFrameのサイズを設定した後 サイズを変更するには、カーソルを隅に置いてドラッグするか、右上隅の閉じる横にあるサイズ変更オプションを押すと、全画面のサイズに最大化されます。これは、サイズ変更がデフォルトでtrueに設定されているために発生します JFrameクラスの場合。 setResizable(false)と同じくらいf