Pessoal já procurei muito por uma solução e até agora não encontrei nada para me ajudar. A situação é a seguinte:
Tenho duas combobox que quando populadas eu clico no botão inserir para que o dado selecionado das mesmas preencham a tabela. Porem, só consigo preencher a primeira linha, quando clico no botão inserir pela segunda vez recebo a seguinte mensagem: Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 1 > 0.
Abaixo segue o metodo. Por favor me ajudem!!!
private void inserirtable(String a , String b){
int qtlinhas = tabela.getRowCount();
DefaultTableModel dtmo;
dtmo = new DefaultTableModel();
dtmo.addColumn("ID");
dtmo.addColumn("Problema");
dtmo.addColumn("Inspetor");
dtmo.insertRow(qtlinhas, new Object[]{a,b});
tabela.setModel(dtmo);
}
É só uma classe de exemplo, no caso, para uma tabela de Livros. Imagine que ela esteja corretamente implementada em algum lugar.
No seu caso, poderia ser uma classe para Inspetores, ou Problemas, sei lá ao que se refere sua tabela.
J
jorge.david
Vini me tira uma duvida…
No codigo abaixo o objeto titulo não esta instaciado correto?
Como devo fazer?
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//Vamos alterar o valor da coluna columnIndex na linha rowIndex com o valor aValue passado no parâmetro.
//Note que vc poderia alterar 2 campos ao invés de um só.
if (columnIndex== COL_TITULO) titulo.setTitulo(aValue.toString());
else if (columnIndex== COL_AUTOR) titulo.getAutor().setNome(aValue.toString());
}
V
ViniGodoy
Tem que pegar ele da lista antes:
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Livro titulo = valores.get(row);
//Vamos alterar o valor da coluna columnIndex na linha rowIndex com o valor aValue passado no parâmetro.
//Note que vc poderia alterar 2 campos ao invés de um só.
if (columnIndex== COL_TITULO) titulo.setTitulo(aValue.toString());
else if (columnIndex== COL_AUTOR) titulo.getAutor().setNome(aValue.toString());
}
(Não lembro se a lista de livros chama mesmo valores, mas acho que vc consegue entender a idéia).
J
jorge.david
Vini assim na verdade estou começando a programar em Java…eu estava precisando de um exemplo bem simples…Por exemplo:
Um campo JTextField, uma Jtable e um JButton…onde os textos digitados no campo texto são inseridos na tabela apos o clicar no botão…
Será que você pode me ajudar?
L
lina
Movido para Interface Gráfica.
J
jorge.david
Será que alguem pode me ajudar?
Ainda não consegui resolver meu problema
Abraços
V
ViniGodoy
jorge.david:
Será que alguem pode me ajudar?
Ainda não consegui resolver meu problema
O que você não entendeu do exemplo de model? Qual foi o código que você tentou fazer com suas classes?
Como seu programa está organizado?
É bem complicado te dar ajuda, se você não dá nenhuma dica de qual é a sua dúvida ou sobre até onde já chegou…
M
maurijava
Jorge,
Você está usando o metodo errado. Cria o JTable fora do metodo e popula com:
DefaultTableModel dtmo;
dtmo = new DefaultTableModel();
dtmo.addColumn("ID");
dtmo.addColumn("Problema");
dtmo.addColumn("Inspetor");
private void inserirtable(String a , String b){
dtmo.addRow(new Object[]{a,b});
tabela.setModel(dtmo);
}
Se você quiser usar o metodo insertRow, você não pode usar essa lógica, pois ele sempre vai inserir na mesma linha, que é o tamanho do JTable, por isso esta dando essa excessão, porque a linha não é válida. Isso tá na documentação da API de Java, é bom estuda-la antes de qualquer coisa.