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
前もって感謝します!