Boa tarde Pessoal!
Minha dúvida parece simples porém não estou conseguindo.
Tenho um jtable com a 2a coluna editavel porém ela deve sempre receber um valor
Nunca podendo estar vazia.
Ou seja gostaria que quando o usuário deixar ela sem nada escrito ela automaticamete aparecesse com o valor 0.0
Nao sei se consegui ser claro mas esta é a minha dúvida desde já agradeço pela atenção.
Como está seu TableModel?
Minha table
public class EventSensorTableModel extends AbstractTableModel {
private ArrayList datalist = new ArrayList();
private String[] columns = {"Data/Hora", "Volume (litros)", "Pulso"};
Class[] columnTypes = {String.class, String.class, String.class};
public EventSensorTableModel() {
}
public EventSensorTableModel(List l) {
datalist.addAll(l);
}
@Override
public int getRowCount() {
return datalist.size();
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public Class getColumnClass(int col) {
return columnTypes[col];
}
@Override
public String getColumnName(int col) {
return columns[col];
}
public Object getValueAt(int rowIndex, int columnIndex) {
EventSensor es = (EventSensor) datalist.get(rowIndex);
switch (columnIndex) {
case 0:
Date tmp = es.getDateinc();
tmp.setMinutes(00);
tmp.setSeconds(00);
String formato = FileConfig.getInstance().getDateFormat();
SimpleDateFormat formatter = new SimpleDateFormat(formato.toString());
return formatter.format(tmp);
case 1:
String pulse = Integer.toString(es.getPulse());
DecimalFormat df = new DecimalFormat("#,##0.000");
return df.format(pulse);
case 2:
pulse = Integer.toString(es.getPulse());
return pulse;
default:
return null;
}
}
public EventSensor getEventsSensorsAt(int row) {
return (EventSensor) datalist.get(row);
}
public void addEventsSensors(EventSensor es) {
datalist.add(es);
fireTableDataChanged();
}
public EventSensor removeEventsSensorsAt(int row) {
EventSensor tmp = (EventSensor) datalist.remove(row);
fireTableDataChanged();
return tmp;
}
public void addEventsSensorsList(List l) {
datalist.addAll(l);
fireTableDataChanged();
}
Voce tem que implementar o método setValueAt(int row, int col, Object value) e tratar isso.
Além do que o Mark_Ameba falou, porque você não usa uma lista parametrizada (generics)? Isso evita os casts e torna o código mais seguro. Use um List.
Resolvi da seguinte forma:
Object valor = "0.0";
if (newCorrection.equals("")){ //valor que retorna
minhaTabela.setValueAt(valor,linhaselecionada,counaSelecioanda);
}
Obrigado a todos