Bom dia,
Não estou a perceber muito bem como funciona o AbstractCellEditor, está aparecer tudo porém não consigo passar o focus nem para os jtextfield nem o jbutton.
Tenho este codigo mas suponho que esteja muita coisa errada.
class TablEditor extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
JPanel panel;
JLabel label;
JTextField text1;
JTextField text2;
JButton showButton;
ArrayList<Teste> teste;
public TablEditor(ArrayList<Teste> teste) {
this.teste = teste;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus,
int row, int column) {
panel = new JPanel();
text1 = new JTextField(10);
text2 = new JTextField(10);
label = new JLabel("Boa!!");
showButton = new JButton("View Articles");
showButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("skjfskljflsdjf");
}
});
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
text1.setText(teste.get(row).getName());
text2.setText(teste.get(row).getTexto());
panel.add(text1);
panel.add(text2);
panel.add(label);
panel.add(showButton);
if (!isSelected) {
panel.setBackground(Color.yellow);
} else {
panel.setBackground(table.getBackground());
}
return panel;
}
public Object getCellEditorValue() {
return text1.getText();
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
text1 = new JTextField(value.toString());
return text1;
}
}
Obrigado