Você está aqui: Java ::: Classes e Componentes ::: JTable |
Excluir uma coluna de uma JTable em tempo de execuçãoQuantidade de visualizações: 9836 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; } } |
![]() |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 18308 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName()); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
||||
Exercícios Resolvidos de Java - Como converter de decimal para números romanos em JavaQuantidade de visualizações: 556 vezes |
||||
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII Veja a resolução comentada deste exercício usando Java:
| ||||
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à retaQuantidade de visualizações: 1211 vezes |
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ // vamos usar a classe Scanner para ler os dados Scanner entrada = new Scanner(System.in); // vamos ler as coordenadas do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); double x1 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); double y1 = Double.parseDouble(entrada.nextLine()); // vamos ler as coordenadas do segundo ponto System.out.print("Coordenada x do segundo ponto: "); double x2 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); double y2 = Double.parseDouble(entrada.nextLine()); String sinal = "+"; // vamos calcular o coeficiente angular da reta double m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear double n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta System.out.println("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |