Pessoal, quando clico duas vezes no JTable que permite que os dados que estão nele sejam alterados, sabem como posso continuar permitindo que a linha seja selecionada mas sem deixar editá-la???
E como posso fazer pra saber qual linha na tabela está selecionada???
JTable
6 Respostas
Pessoal, também estou com problemas com acentuação.]
José por exemplo, está sendo carregado como Jos�
putz pessoal, acho que achei o que preciso… xD
http://www.guj.com.br/posts/list/44113.java
tipo, postei e acabei respondendo, que tosco neh?
abraços 
:oops:
falei besteira, ainda não resolvi meu problema…
[color=blue]exemplo para tornar todas as linhas read-only[/color]
private DefaultTableModel dtm = new DefaultTableModel(){
//reescrevendo o metodo para retornar que todas as linhas serao read-only
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
};
[color=blue]
exemplo para pegar a posição da linha selecionada[/color]
table.getSelectedRow();
acho que isso resolve seu problema
Dá uma olhada nesse link abaixo. Tem diversos exemplos que lhe ajudarão nessa sua empreitada.
http://www.recomende.com/arquivo/dicas_truques_categoria2.php?linguagem=2&categoria1=7&categoria2=10
AAAAAAAEwwwwwwwwww
Obrigado pessoal!!!!
O problema com o duplo clique nas células foi resolvido com o que o wag182 passou e para saber como pegar a linha selecionada, putz o link que o Petrônio passou é fantástico!
Tah aew o código da linha e coluna selecionada pra quem precisar:
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class Estudos extends JFrame{
private boolean ALLOW_COLUMN_SELECTION = false;
private boolean ALLOW_ROW_SELECTION = true;
public Estudos(){
super("Exemplo de uma tabela simples");
// colunas da tabela
String[] colunas = {"Cidade", "Estado", "Habitantes"};
// conteúdo da tabela
Object[][] conteudo = {
{"Goiânia", "GO", "43.023.432"},
{"São Paulo", "SP", "5.343.234"},
{"Rio de Janeiro", "RJ", "6.434.212"},
{"Jussara", "GO", "87.454"},
{"Barra do Garças", "MT", "64.344"}
};
// constrói a tabela
final JTable tabela = new JTable(conteudo, colunas);
tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
// permite selecionar apenas uma linha de cada vez
tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// detecta seleções de linha
if(ALLOW_ROW_SELECTION){ // verdadeiro por padrão
ListSelectionModel rowSM = tabela.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting())
return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if(lsm.isSelectionEmpty()){
System.out.println("Nenhuma linha selecionada.");
}
else{
int selectedRow = lsm.getMinSelectionIndex();
System.out.println("Linha " + selectedRow
+ " foi selecionada.");
}
}
});
}
else{
tabela.setRowSelectionAllowed(false);
}
if(ALLOW_COLUMN_SELECTION){ // falso por padrão
if(ALLOW_ROW_SELECTION){
tabela.setCellSelectionEnabled(true);
}
tabela.setColumnSelectionAllowed(true);
ListSelectionModel colSM = tabela.getColumnModel().getSelectionModel();
colSM.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting())
return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if(lsm.isSelectionEmpty()) {
System.out.println("Nenhuma coluna selecionada.");
}
else{
int selectedCol = lsm.getMinSelectionIndex();
System.out.println("Coluna " + selectedCol
+ " está selecionada.");
}
}
});
}
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
