JTable

6 respostas
v1c70r_f
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???

6 Respostas

v1c70r_f

Pessoal, também estou com problemas com acentuação.]

José por exemplo, está sendo carregado como Jos�

v1c70r_f

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 :smiley:

v1c70r_f

:oops:

falei besteira, ainda não resolvi meu problema…

wag182

[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

Petronio_Braga

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

v1c70r_f

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);
  }
}

:smiley:

Criado 12 de maio de 2007
Ultima resposta 12 de mai. de 2007
Respostas 6
Participantes 3