我想在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