0

20x20 フィールドに配置されたコンボボックスがあるため、ボタンのみが表示されます。

ユーザーがボタンをクリックすると、幅 150 の popupmenu がドロップダウンされます (Mark McLaren の WiderDropDownCombo ソリューションを使用)。

ただし、ボタンはパネルの右端にあり、他に 2 つのフィールド (両方とも JTextField) が含まれています。ドロップダウン メニューを開くと、デフォルトで左上隅から始まり、領域の範囲外になります。コンボボックスがすべてのフィールドの下に表示されるように変更する必要があります。

CellRenderers と向きをいじってみましたが、うまくいかないようです。どなたか解法をご存知の方はいらっしゃいませんか!?

フィールドを作成する部分の私のコードは次のとおりです。

    HistoryProcessor processor = new HistoryProcessor(field.getName().toLowerCase());
    amount = new JTextField( amountString );
    currency = new JTextField( currencyString );
    amount.setMinimumSize( new Dimension(94, 20) );
    amount.setPreferredSize( amount.getMinimumSize() );
    amount.setMaximumSize( amount.getMinimumSize() );
    currency.setMinimumSize( new Dimension(30, 20) );
    currency.setPreferredSize( currency.getMinimumSize() );
    currency.setMaximumSize( currency.getMinimumSize() );
    popupButton = processor.populateHistoryBox();
    popupButton.setWide(true);
    popupButton.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    popupButton.setMinimumSize(new Dimension(20, 20));
    popupButton.setPreferredSize(popupButton.getMinimumSize());
    popupButton.setMaximumSize(popupButton.getMinimumSize());
    panel.add(amount, BorderLayout.WEST);
    panel.add(currency, BorderLayout.CENTER);
    panel.add(popupButton, BorderLayout.EAST);
    popupButton.addPopupMenuListener(new MoneyHistoryListener(this));

amount は最初のフィールド、currency は 2 番目のフィールド、popupButton はコンボボックスです。HistoryProcessor によって自動的に入力されます。ここに私の問題の画像があります: http://i.stack.imgur.com/X3ZLk.jpg

ここに画像の説明を入力

前もって感謝します!

4

2 に答える 2

0

Javaのさまざまなレイアウト マネージャーを見てみましょう。複数の JPanel を使用すると、ニーズに合わせてさまざまなレイアウト マネージャーを組み合わせることができます。これがお役に立てば幸いです。

于 2013-07-23T10:55:36.573 に答える