機能: ツリー メニューの作成 説明: ツリー メニュー構造の作成はメニュー バーの作成と似ており、レベルとモデルに基づいて作成されます。
DefaultMutableTreeNode クラスを通じてルート ノード、子ノード、および孫ノード オブジェクトを作成し、DefaultTreeModel を使用します。
このクラスはルート ノードを使用してツリー モデル オブジェクトを作成し、treeModel.insertNodeInto メソッドを通じてそのノード オブジェクトをツリー モデルに挿入します。
レンダリング:
コード:
import java.awt.*; import javax.swing.tree.*; public class Tree extends TreeSelectionListener { private JLabel label; ("ツリーメニュー"); setSize(400,400); コンテナコンテナ = getContentPane(); // ルートノードと子ノードを作成します。 root = new DefaultMutableTreeNode("テキスト エディタ"); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("File"); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Edit"); // ルート ノードを使用して TreeModel を作成します。 ); //子ノードnode1、node2を挿入します。 treeModel.insertNodeInto(node1,root,root.getChildCount());treeModel.insertNodeInto(node2,root,root.getChildCount()); //ノードnode1の子ノードを作成し、DefaultMutableTreeNodeを挿入しますleafnode = new DefaultMutableTreeNode("Open") ) ; TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); リーフノード = 新しい DefaultMutableTreeNode("保存"); ; TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount());leafnode = new DefaultMutableTreeNode("Close");treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); //ノードnode2の子ノードを作成します。それを挿入しますleafnode = new DefaultMutableTreeNode("cut"); TreeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); リーフノード = 新しい DefaultMutableTreeNode("コピー"); treeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); //ツリー オブジェクトを作成します。 JTree Tree = new JTree(treeModel) //一度に 1 つのノードのみを選択するようにツリーの選択を設定します。 .setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION) // リスナーを登録しますtree.addTreeSelectionListener(this); tree.setRowHeight(20); //ノード描画オブジェクトを作成します DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //フォントを設定します cellRenderer.setFont(new Font("Serif",Font.PLAIN,14); .setBackgroundNonSelectionColor(Color.white); cellRenderer.setBackgroundSelectionColor(Color. yellow); cellRenderer.setBorderSelectionColor(Color.red); //選択または非選択時のテキストの変更色を設定します cellRenderer.setTextNonSelectionColor(Color.blue); / /ツリー オブジェクトをコンテンツ パネルに追加します。container.add(new JScrollPane(tree)); //ラベルを作成します label = new JLabel("現在選択しているノードは次のとおりです:",JLabel.CENTER); label.setFont(new Font("Serif",Font.PLAIN,14)); BorderLayout .SOUTH); setVisible(true); // 表示を設定 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //TreeSelectionEvent イベントを処理します public void valueChanged(TreeSelectionEvent event) { JTree Tree = (JTree)event.getSource(); //現在選択されているノードを取得します DefaultMutableTreeNodeselectionNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); toString (); label.setText("現在選択しているノードは次のとおりです: "+nodeName); } public static void main(String args[]) { Tree d = new Tree(); } }
この記事でレベルとモデルに応じて作成したツリー メニューは、メニュー バーの作成に似ています。お友達はマスターしたでしょうか。