Java 为什么调用setSelectedIndex(0)后不会自动触发itemListener?
Java 为什么调用setSelectedIndex(0)后不会自动触发itemListener?,java,swing,jcombobox,jdialog,Java,Swing,Jcombobox,Jdialog,cbTexture.setSelectedIndex(0)在末尾被调用 构造函数,但它没有帮助 自动选择子文本 在它之后。为什么? public class TradeInDialog extends JDialog { public TradeInDialog(Database _db) throws SQLException { .... setupTexture(); cbTexture.addItemLis
cbTexture.setSelectedIndex(0)代码>在末尾被调用
构造函数,但它没有帮助
自动选择子文本
在它之后。为什么?
public class TradeInDialog extends JDialog {
public TradeInDialog(Database _db) throws SQLException
{
....
setupTexture();
cbTexture.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
selectedTexture = cbTexture.getSelectedIndex()+1;
setupSubTexture();
}
});
....
cbTexture.setSelectedIndex(0);
}
由于setupSubTexture(),您在下一个元素中的问题已被默认选中调用cbTexture.setSelectedIndex(0)时,不执行code>method代码>。尝试cbTexture.setSelectedIndex(1)代码>并且您看到它是有效的。您必须在事件处理程序类之外调用setupsubtext
方法,因此您的代码必须如下所示:
公共类TradeInDialog扩展了JDialog{
public TradeInDialog(Database _db) throws SQLException
{
selectedTexture = 1;
setupSubTexture();
setupTexture();
cbTexture.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
selectedTexture = cbTexture.getSelectedIndex()+1;
setupSubTexture();
}
});
cbTexture.setSelectedIndex(0);
}
为了更快地获得更好的帮助,请发布一个.what iscbTexture
class?