2013-12-11 1 views
0

Мой код относится к приложениям LWUIT, но проблема о чем-то распространенном между LWUIT и java swing.ActionEvent компонента на ячейке таблицы не имеет места

У меня есть таблица есть кнопка установлена ​​на последней ячейке его в качестве компонента

Мой вопрос просто почему там никаких действий не происходит при нажатии этой кнопки.

Я тоже проверил флажок, но я даже не мог проверить.

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); 
} 
} ; 
+1

Правильно отформатируйте свой код –

+0

Вам нужно использовать пользовательский 'CellEditor' с' JButton', взгляните на [Столбец для столбцов] (http://tips4java.wordpress.com/2009/07/12/table- button-column /) – alex2410

+0

, пожалуйста, вы можете объяснить этот код для меня, getActionCommand() не может использоваться в приложении LWUIT public void actionPerformed (ActionEvent e) { JTable table = (JTable) e.getSource(); int modelRow = Integer.valueOf (e.getActionCommand()); ((DefaultTableModel) table.getModel()). RemoveRow (modelRow); } – JavaFan

ответ

1

Вы не должны добавлять кнопки в таблицу, и вы не должны ссылаться на setFocus().

Либо добавьте кнопку в качестве отдельного компонента в общий родительский элемент, либо переопределите метод createCell для создания кнопки для этого случая (первая из них проще).

Используйте requestFocus() вместо setFocus().

+0

Переопределение метода createCell в классе таблицы не помогло решить эту проблему! plz see my thread again – JavaFan

+0

Как это не работает? Вы достигли этого кода? Это должно работать, но вы также должны проверить строку, так как этот метод также вызывается для ячейки заголовка. –

+0

Мне жаль, что он отлично работает, я не замечал хорошо. – JavaFan

 Смежные вопросы

  • Нет связанных вопросов^_^