Remover Linha do JTable

3 respostas
K
Estou tentando remover uma linha da minha tabela, porém não está dando certo, coloquei este código:

public void RemoverLinha()

{

int linhaSelecionada = getJTable().getSelectedRow();

if( linhaSelecionada < 0)

return;

else

RemoverLinha(linhaSelecionada);

}

public void RemoverLinha(int linha)

{

DefaultTableModel modelo = (DefaultTableModel)getJTable().getModel();

modelo.removeRow(linha);

}

Alguém pode me ajudar??

3 Respostas

D
int[] l = table.getSelectedRows();

DefaultTableModel dtm = (DefaultTableModel)table.getModel();

for(int i = (l.length-1); i >= 0; --i)

dtm.removeRow(l[i]);
K

Acabei de tantar e também não está dando certo…

D
testa ai este exemplo....ele esta rodando certinho....
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.border.*;

public class ExemploJTable extends JFrame {
  private JComboBox scmbSexo;
  private JPanel bAdd;
  private JButton bDelete;
  private JButton bMais;
  private JButton bMenos;
  private JButton jButton1;
  private JPanel pnTable;
  private JScrollPane scrollTable;
  private JTable table;
  Container container;
  
  public ExemploJTable() {
       this.getContentPane().setLayout(null);  
       container = getContentPane();

        String[] sexos = {"M","F"};
        scmbSexo = new JComboBox(sexos);
        initComponents();
  }

  private void initComponents(){
        bAdd = new JPanel();
        setTitle("Exemplo JTable imasters");
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                exitForm(evt);
            }
        });
        bAdd.setLayout(null);

        table = new JTable();
        table.setModel(new DefaultTableModel(new Object [][] { },new String [] {" ","Nome", "Telefone","email","Sexo"})
          {}    
        );    
        table.getColumnModel().getColumn(0).setPreferredWidth(10);
        table.getColumnModel().getColumn(0).setResizable(false);
        table.getColumnModel().getColumn(1).setPreferredWidth(150);
        table.getColumnModel().getColumn(1).setResizable(true);
        table.getColumnModel().getColumn(2).setPreferredWidth(60);
        table.getColumnModel().getColumn(2).setResizable(true);
        table.getColumnModel().getColumn(3).setPreferredWidth(160);
        table.getColumnModel().getColumn(3).setResizable(true);
        table.getColumn(table.getColumnName(4)).setCellEditor(new DefaultCellEditor(scmbSexo));
        table.getColumnModel().getColumn(4).setPreferredWidth(30);
        table.getColumnModel().getColumn(4).setResizable(true);
        table.getTableHeader().setReorderingAllowed(false);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
       
        scrollTable = new JScrollPane();
        scrollTable.setViewportView(table);
        scrollTable.setBounds(10, 10, 370, 230);
        container.add(scrollTable);
      
        bMenos = new JButton();
        bMenos.setText("-");
        bMenos.setBounds(400, 110, 40, 40);
        this.getContentPane().add(bMenos);
        bMenos.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
                int[] l = table.getSelectedRows();
                DefaultTableModel dtm = (DefaultTableModel)table.getModel();
                for(int i = (l.length-1); i >= 0; --i) {
                   if("".equals(table.getValueAt(l[i],1).toString().trim())) {
                      dtm.removeRow(l[i]);
                   }                
               }
          }
        });      
                
        bMais = new JButton();
        bMais.setText("+");
        bMais.setBounds(400, 60, 40, 40);
        this.getContentPane().add(bMais);
        bMais.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
                DefaultTableModel dtm = (DefaultTableModel)table.getModel();
                dtm.addRow(new Object[]{"","","","",""});
          }
        });
    
       jButton1 = new JButton();
       jButton1.setText("Add");
       jButton1.setBounds(390, 180, 60, 23);
       this.getContentPane().add(jButton1);
       jButton1.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent evt) {
              DefaultTableModel dtm = (DefaultTableModel)table.getModel();
              dtm.addRow(new Object[]{" ","Almedson Ferreira","1111111","[email removido]","M"});
           }
       });
      
       bDelete = new JButton();
       bDelete.setText("Del");
       bDelete.setBounds(390, 210, 60, 23);
       this.getContentPane().add(bDelete);
       bDelete.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent evt) {
              int[] l = table.getSelectedRows();
              DefaultTableModel dtm = (DefaultTableModel)table.getModel();
              for(int i = (l.length-1); i >= 0; --i)
                  dtm.removeRow(l[i]);
           }
       });

    setLocation(10,20);
    setSize(500,300);
  }
  
  private void exitForm(WindowEvent evt){
    System.exit(0);
  }
  public static void main(String args[]){
      new ExemploJTable().show();
  }
}
Criado 21 de julho de 2004
Ultima resposta 21 de jul. de 2004
Respostas 3
Participantes 2