Olá,
Estou com dúvida sobre o JTable
Se eu selecionar por exemplo 3 arquivos de uma vez, da certo. adicionado na posição zero, um e dois
O problema é se eu adicionar um arquivo de cada vezes eles são adicionados todos posição zero do Object[]
existe a possibilidade de apontar a posição de onde salvar o arquivo adicionado nesse caso ?
segue o código
File[] arquivos = arquivo.getSelectedFiles();
for (int i = 0; i < arquivos.length; i++) {
dtm.addRow(new Object[] { new Boolean(false), arquivos[i].getAbsolutePath() });
}
executaArquivo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent acaoMenuStart) {
if (acaoMenuStart.getSource() == executaArquivo) {
for (int x = 0; x < dtm.getRowCount(); x++) {
if ((tc.getCellEditor().isCellEditable(acaoMenuStart) == true)
&& (boolean) table.getModel().getValueAt(x, 0).equals(true)) {
try {
System.out.println(x);
Runtime.getRuntime().exec("cmd.exe /c start " + arquivos[x].getAbsolutePath());
} catch (IOException e) {
System.out.println("falhou");
e.printStackTrace();
}
}
}
}
}
});
primeiro, o que é start ? pq vc tem que verificar isso?
segundo, vc nao precisa fazer if ( qqcoisa == true ), basta if ( qqcoisa ) ou if ( (boolean) qqcoisa )
( eu tenho aqui umas duvidas se isso funciona ou se vc precisa fazer um cast para Boolean e ai chamar booleanValue pois tem autobox nesses casos… tem que testar )
terceiro, o que acontece dentro do loop?
mostra os outputs com 2 arquivos e nesses dois cenarios pra gente tentar entender ( eu acho q vc deveria socar uns breakpoints e rodar um debugger )
Olá,
então, atualizei o código, eu uso um JFileChooser para selecionar os arquivos
Se eu selecionar por exemplo 3 arquivos de uma vez, da certo. adicionado na posição zero, um e dois
O problema é se eu adicionar um arquivo de cada vezes eles são adicionados todos posição zero do Object[]
File[] arquivos = arquivo.getSelectedFiles();
for (int i = 0; i < arquivos.length; i++) {
dtm.addRow(new Object[] { new Boolean(false), arquivos[i].getAbsolutePath() });
}
executaArquivo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent acaoMenuStart) {
if (acaoMenuStart.getSource() == executaArquivo) {
for (int x = 0; x < dtm.getRowCount(); x++) {
if ((tc.getCellEditor().isCellEditable(acaoMenuStart) == true)
&& (boolean) table.getModel().getValueAt(x, 0).equals(true)) {
try {
System.out.println(x);
Runtime.getRuntime().exec("cmd.exe /c start " + arquivos[x].getAbsolutePath());
} catch (IOException e) {
System.out.println("falhou");
e.printStackTrace();
}
}
}
}
}
});