Você está aqui: Java ::: Classes e Componentes ::: JTable |
Excluir uma coluna de uma JTable em tempo de execuçãoQuantidade de visualizações: 9890 vezes |
import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import java.util.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); final DefaultTableModel modelo = new MyDefaultTableModel(); // constrói a tabela final JTable tabela = new JTable(modelo); tabela.setAutoCreateColumnsFromModel(false); // Cria duas colunas modelo.addColumn("Nome"); modelo.addColumn("Idade"); JButton btn = new JButton("Inserir Colunas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String titulo = JOptionPane.showInputDialog(null, "Informe o título para a nova coluna:"); int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da nova coluna:")); // testa se a posição é válida if(pos > (modelo.getColumnCount() - 1)) pos = 0; // Insere uma coluna na posição especificada insertColumn(tabela, titulo, null, pos); } } ); JButton btn2 = new JButton("Excluir Colunas"); btn2.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da coluna a ser excluída:")); // testa se a posição é válida if(pos < modelo.getColumnCount()) // remove a coluna na posição especificada removeColumnAndData(tabela, pos); } } ); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); c.add(btn2); setSize(400, 300); setVisible(true); } public void betterAddColumn(JTable table, Object headerLabel, Object[] values) { DefaultTableModel model = (DefaultTableModel)table.getModel(); TableColumn col = new TableColumn(model.getColumnCount()); if(table.getAutoCreateColumnsFromModel()) { throw new IllegalStateException(); } col.setHeaderValue(headerLabel); table.addColumn(col); model.addColumn(headerLabel.toString(), values); } public void insertColumn(JTable table, Object headerLabel, Object[] values, int vColIndex){ betterAddColumn(table, headerLabel, values); table.moveColumn(table.getColumnCount()-1, vColIndex); } public void removeColumnAndData(JTable table, int vColIndex) { MyDefaultTableModel model = (MyDefaultTableModel)table.getModel(); TableColumn col = table.getColumnModel().getColumn(vColIndex); int columnModelIndex = col.getModelIndex(); Vector data = model.getDataVector(); Vector colIds = model.getColumnIdentifiers(); table.removeColumn(col); colIds.removeElementAt(columnModelIndex); for (int r=0; r<data.size(); r++) { Vector row = (Vector)data.get(r); row.removeElementAt(columnModelIndex); } model.setDataVector(data, colIds); Enumeration enume = table.getColumnModel().getColumns(); for (; enume.hasMoreElements(); ) { TableColumn c = (TableColumn)enume.nextElement(); if (c.getModelIndex() >= columnModelIndex) { c.setModelIndex(c.getModelIndex()-1); } } model.fireTableStructureChanged(); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class MyDefaultTableModel extends DefaultTableModel { public Vector getColumnIdentifiers() { return columnIdentifiers; } } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Python - Como converter Metros Quadrados em Quilômetros Quadrados em Python - Python para Física e Engenharia VisuAlg - Exercícios Resolvidos de VisuAlg - Como calcular e exibir os 50 primeiros números primos em VisuAlg |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |