我有一个放在 20x20 字段中的组合框,所以只显示按钮。
当用户单击该按钮时,它会下拉一个 150 宽的弹出菜单(使用 Mark McLaren 的 WiderDropDownCombo 解决方案)。
但是,该按钮位于面板的最右侧,其中包含 2 个其他字段(均为 JTextFields)。当我打开下拉菜单时,它默认从左上角开始,超出该区域的范围。我需要更改它,以便组合框出现在所有字段下方。
我试过搞乱 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));
其中金额是第一个字段,货币是第二个字段,popupButton 是组合框。它由 HistoryProcessor 自动填充。这是我的问题的图片:http: //i.stack.imgur.com/X3ZLk.jpg
提前致谢!