0

これはおそらく簡単な質問です。私はJavaプログラミングにあまり慣れていません。ただし、CheckboxTreeを使用してダイアログを作成する必要があります(チェックボックスを使用した場合の変形。http:JTree //www.javaworld.com/javaworld/jw-09-2007/jw-09-checkboxtree.htmlを参照) 。

注:私はJDialogNetBeansのグラフィカル環境で作成したので、ボタンなどを追加するためのコードを生成しました。したがって、主要部分の作成後にこのツリーを追加する方法を知る必要があります...多分それは問題は、私がこのようなことをすると、次のようになるためです。

   JPanel panel = new JPanel();
   this.setContentPane(panel);

次に、実際にダイアログにツリーが表示されますが、すべてのボタンとすべてが消えています...

aとoptionspaneに追加できましたJFrameが、カスタムで追加したいと思いますJDialog。誰かが私に何をする必要があるかを非常に簡単な言葉で説明してもらえますか?

これまでの私の弱い試みは次のとおりです。

JDialogのコンストラクター:

public MetadataUI(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();

    Container panel = getContentPane();
    panel.add(getTree());
    panel.repaint();
    this.pack();
}

チェックボックスツリーを作成するgetTreeメソッド:

private static CheckboxTree getTree() {
    DefaultMutableTreeNode root, child;

    root = new DefaultMutableTreeNode("root");

    child = new DefaultMutableTreeNode("Colors");
    root.add(child);
    child.add(new DefaultMutableTreeNode("Cyan"));
    child.add(new DefaultMutableTreeNode("Magenta"));
    child.add(new DefaultMutableTreeNode("Yellow"));
    child.add(new DefaultMutableTreeNode("Black"));


    CheckboxTree checkboxTree = new CheckboxTree(root);
    checkboxTree.setVisible(true);
    return checkboxTree;
}

この塗り直しとそれは私がグーグルで見つけたものに基づいた最後の試みですが、それはまったく違いがなかったので、私はかなり離れていると思います。

ツリーを追加して表示する最も簡単な方法をいただければ幸いです。JTree追加に関してはまったく同じように機能しているようですが、機能させることはできません。したがって、この特定のチェックボックスツリープラグインの経験がない場合でも、でを使用するための同じ(最も単純な)コードでJTree十分JDialogです。

編集:

Andrewに応えて、これが通常のJTreeと同じこと(私の最善の試み)です:

private static JTree getTree() {
    DefaultMutableTreeNode root, child;

    root = new DefaultMutableTreeNode("root");

    child = new DefaultMutableTreeNode("Colors");
    root.add(child);
    child.add(new DefaultMutableTreeNode("Cyan"));
    child.add(new DefaultMutableTreeNode("Magenta"));
    child.add(new DefaultMutableTreeNode("Yellow"));
    child.add(new DefaultMutableTreeNode("Black"));


    JTree tree = new JTree(root);
    tree.setVisible(true);
    return tree;
}

編集2:

マキシムに応えて、私は混乱しています。あなたにとって明らかなことはおそらく私に失われています。あなたのコードからいくつかのものを借りて、これは私が思いつくことができる最高のものです(動作しません):

public MetadataUI(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();


    JScrollPane s = new JScrollPane();

    s.getViewport().add(getTree());

    getContentPane().add(s, BorderLayout.CENTER);

    setVisible(true);
}
4

1 に答える 1

1

実際にNetbeansGUI(JDialogフォーム)を使用してJDialogを作成し、既存のコンポーネントに統合しようとしているコンポーネントがゼロ引数コンストラクターを提供している場合は、次のことを試してください。

  1. 既存のJDialogをデザインモードで開きます
  2. ナビゲータービューで、右クリック[JDialog]するか、最上位ノード(「その他のコンポーネント」の兄弟である必要があります)を右クリックして、Add From Palette > Beans > Choose Bean
  3. JTreeコンポーネント(例)を表すクラスの完全修飾名を入力し、com.example.jtree.SomeJTreeComponent確認します。コンポーネントが本当にJTreeである場合、問題なく追加される可能性があります。
  4. (オプション)この時点で、ツリーはJScrollPaneで囲まれている場合と囲まれていない場合があります。そうでない場合は、新しく追加したコンポーネントで手順2の一部を繰り返し、今回を選択することで、手動でこれを実現できますEnclose in

他のものは手作業でプログラムする必要があります。JTreeチュートリアルを読むか、サードパーティコンポーネントのドキュメントを参照して支援することをお勧めします。

GUIの構築に使用しているツールについて詳しく読むこともできます。

于 2012-11-26T15:22:27.770 に答える