0

少し問題があります。JDialogにJComboBoxをいくつか持っていましたが、表示されません...さらにそれらを選択できます(写真を参照)。

代替テキストhttp://grab.by/3RwI

そして、これが私のコードです:

for(int i = 0; i<11; i++)
    {
        JComboBox jC = new JComboBox(posteList);
        jC.setBounds(300, posY, 100, 20);
        jC.setSelectedIndex(0);
        this.add(jC);
        posY += 30;
    }

この問題を解決するためのアイデアはありますか?ありがとう !

4

3 に答える 3

2

setBounds()コンポーネントの位置を管理するには、レイアウトを使用する必要があります。

于 2010-04-19T17:17:00.343 に答える
0

私はその問題の解決策を見つけました。GlassPaneにJPanelを使用している場合は、ガラスペイン上でJInternalFrameを使用しています。JFileChooserまたはJComboboxを描画しようとすると、ポップアップがロールダウンしない場合があります(つまり、ロールダウンしますが、JPanelの下でロールダウンします)。Oracleからのバグレポートは次のとおりです。同僚がこのバグレポートを見つけたとき、私の目は輝いていました。そこで、バグレポートのソリューションをJFrameに実装すると、ポップアップが正常に機能しました。手順は次のとおりです。

  1. まず、JFrameを作成する必要があります。
  2. バグレポートから修正(ハック)を実装します。
  3. 次のように、JPanel(GlassPane)をJFramesrootPaneに追加する必要があります。frame.getRootPane().setGlassPane(panel);
  4. JComboBoxを追加するときは、次のように設定します。comboBox.setLightWeightPopupEnabled(true)

これがあなたの問題の解決策でもあることを願っています。それは私のために働いた。

于 2012-07-26T11:32:19.413 に答える
0

doLayout()境界を手動で設定した後、JComboBoxのメソッドを呼び出します。その後、コンボ ボックスが正しく表示されます。例えば:

JPanel panel = new JPanel();
panel.setLayout(null);

String[] items = {"hello","goodbye","etc"};
JComboBox cbox = new JComboBox(items);
panel.add(cbox);
cbox.setBounds(0, 0, 100, 20);
cbox.doLayout(); // force the JComboBox internals to use your bounds
于 2011-03-04T01:02:16.543 に答える