我想在JComboBox里放一个JButton。该按钮可让用户浏览文件。用户选择的文件被添加到JComboBox列表中。我该怎么做呢?我是否使用某种渲染器?谢谢。如何把JButton放在JComboBox里面
编辑: 阅读更多关于ListCellRenderer后,我尝试下面的代码:
JComboBox comboBox = new JComboBox(new String[]{"", "Item1", "Item2"});
ComboBoxRenderer renderer = new ComboBoxRenderer();
comboBox.setRenderer(renderer);
class ComboBoxRenderer implements ListCellRenderer {
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
JButton jbutton = new JButton("Browse");
return jbutton;
}
}
上述的问题是按钮“浏览”将添加3次,我希望它显示只有一次和下面显示Item1和Item2作为普通/常规组合框选择对象。
谢谢你的详细解答罗宾。上面发布的示例显示了如何向浏览组件添加Event Listener,但它仍作为常规JList文本显示给用户。我已经看到ComboBoxes中的按钮应用程序,不管它们是用Java写的还是不是我都不确定。 – jadrijan
@jadrijan当然,它看起来不像一个按钮。这就是我想说的......你可以使用'JButton',但它永远不会像一个。所以最好不要使用'JButton' imo – Robin
我完全理解你的罗宾。 :)我只是想澄清一点,它不违反Java的“规则”去做我所做的事情。 – jadrijan