gpt4 book ai didi

java - 表格单元格上组件的 ActionEvent 未发生

转载 作者:行者123 更新时间:2023-12-01 13:43:30 27 4
gpt4 key购买 nike

我的代码属于 LWUIT 应用程序,但存在 LWUIT 和 java swing 之间常见问题。

我有一个表格,在它的最后一个单元格上设置了一个按钮作为组件

我的问题只是为什么当我按下该按钮时没有发生任何操作。

我也尝试过复选框,但我什至无法进行检查。

Button b,b2;

Object [][] elhind;

b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)

{
elhind = new String[1][9];
String elhind [][] = {{"Netherlands","Germany","Austria","Romania","Bulgaria","England","Walse","Ireland","Belgium"}};

Object ob [][] = new String[elhind.length][10];

for(int col=0;col<9;col++)
{

for(int j=0;j<elhind.length;j++)
{

ob[j][col] = elhind[j][col];

}
}
TableModel model = new DefaultTableModel( new String[]{"col1","col2","col3","col4","col5","col6","col7","col8","col9","col10","col11"ob) {
public boolean isCellEditable(int row, int col)
{
return true;
}
};

elhind = new String[1][10];
ob = new String[1][10];

Table table = new Table(model,true);

for(int col=0;col<10;col++)
for(int j=0;j<1;j++)

try
{

if(col ==8)
{
Button cb =new Button("lam");
cb.setFocus(true);
cb.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent acv)
{

System.out.print("Action done");
}
});

table.addComponent(cb);

}
else
{
model.setValueAt(j, col, elhind[j++][col++] ) ;
}
}
catch(java.lang.ArrayIndexOutOfBoundsException ee)
{
}
catch(java.lang.NullPointerException e3)
{
}
}

}

);

重写表类上的 createCell 方法并不能解决问题

Table  table = new Table(model,true)
{
protected Component createCell(Object value, final int row,
final int column, boolean editable) {
if (column == 0) {
try {
Button cod = new Button("cod");
cod.getStyle().setBgColor(0x00f0f0);
cod.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEventacv)
{
System.out.print("hello LWuit");
}
});
return cod;
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return super.createCell(value, row, column, editable);
}
} ;

最佳答案

您不应向表格添加按钮,也不应调用 setFocus()

要么将按钮作为单独的组件添加到公共(public)父级中,要么重写表的 createCell 方法来为这种情况生成按钮(前者更容易)。

使用 requestFocus() 而不是 setFocus()。

关于java - 表格单元格上组件的 ActionEvent 未发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514181/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com