Editando JTable

2 respostas
M

Salve galera,
numa JTable implementada, eu quero que quando o usuário clique com o botão direito sobre uma linha, abra 1 menu com 2 opções, remover linha e editar linha, e ai implementar os métodos para isso. A Jtable está implementada a partir de um DefaultTableModel. Existe como fazer isso?

2 Respostas

V
para remover uma linha da JTable
((DefaultTableModel)jTable1.getModel()).removeRow(jTable1.getSelectedRow());

Agora vc ker criar um menu e tal...

JPopupMenu popMenu = new JPopupMenu(); 
    JMenuItem pmExcluir = new JMenuItem("Excluir Linha");
    pmExcluir.setFont(new Font("Dialog",0,10));
    popMenu.add(pmExcluir);
         
     pmExcluir.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){           
           ((DefaultTableModel)jTable1.getModel()).removeRow(jTable1.getSelectedRow());
      }});
Para mostar na tela o popup... no evento clicked da tabela!
private void jTable1_mouseClicked(MouseEvent e) {
     if(e.getButton() == MouseEvent.BUTTON3){
         jTable1.setRowSelectionInterval(jTable1.rowAtPoint(e.getPoint()),jTable1.rowAtPoint(e.getPoint()));
         popMenu.show(jTable1,e.getX(),e.getY());
     }
    }
ViniGodoy

Primeiro passo, livre-se do DefaultTableModel:
http://www.informit.com/articles/article.aspx?p=332278

Segundo passo, faça seu ser editável:
http://www.informit.com/articles/article.aspx?p=333472

Terceiro passo, use o método getSelectedLine() para obter que linha foi selecionada. Então abra um JPopupMenu sobre a linha com a opção de excluir.
Por padrão, o comportamento da JTable é deixar o usuário editar quando ele dá dois cliques sobre a célula. Então, não deve ser necessário o comando editar.

Criado 18 de julho de 2008
Ultima resposta 18 de jul. de 2008
Respostas 2
Participantes 3