Você está aqui: Java ::: Classes e Componentes ::: JTable |
Como exibir um JComboBox nas células de uma JTableQuantidade de visualizações: 11868 vezes |
import javax.swing.*; import java.awt.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Nome", "Idade", "Sexo"}; // conteúdo da tabela Object[][] conteudo = { {"Osmar J. Silva", "32", "Masculino"}, {"Maria Clara Gomes", "19", "Feminino"} }; // constrói a tabela JTable tabela = new JTable(conteudo, colunas); String[] valores = new String[]{"Masculino", "Feminino"}; TableColumn col = tabela.getColumnModel().getColumn(2); col.setCellEditor(new MyComboBoxEditor(valores)); // comente se não quiser que o comboxbox apareça quando a // célula não estiver em modo de edição col.setCellRenderer(new ComboBoxRenderer(valores)); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); 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); } } class ComboBoxRenderer extends JComboBox implements TableCellRenderer { public ComboBoxRenderer(String[] items){ super(items); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } setSelectedItem(value); return this; } } class MyComboBoxEditor extends DefaultCellEditor { public MyComboBoxEditor(String[] items) { super(new JComboBox(items)); } } |
Link para compartilhar na Internet ou com seus amigos: |
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: 18226 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 ::: Dicas & Truques ::: Formatação de datas, strings e números |
Java para iniciantes - Como formatar uma string no estilo printf da linguagem C usando a classe Formater do JavaQuantidade de visualizações: 11860 vezes |
Nesta dica eu mostro como é possível usar o método format() da classe Formater da linguagem Java para formatar strings ao bom e velho estilo da linguagem C, ou seja, com marcadores %d para inteiros, %f para decimais, por exemplo. Veja o exemplo completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String[] args){ int pessoas = 20; StringBuilder string = new StringBuilder(); Formatter fm = new Formatter(string); fm.format("Havia %d pessoas lá.", pessoas); System.out.println(string); } } Ao executar este código Java nós teremos o seguinte resultado: Havia 20 pessoas lá. |
Java ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em JavaQuantidade de visualizações: 997 vezes |
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Java completo: ---------------------------------------------------------------------- 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 // valores de latitudes e longitudes Scanner entrada = new Scanner(System.in); System.out.print("Informe a primeira latitude: "); double lat1 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a primeira longitude: "); double lon1 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a segunda latitude: "); double lat2 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a segunda longitude: "); double lon2 = Double.parseDouble(entrada.nextLine()); // vamos calcular a distância entre os dois pontos em Kms double distancia = calcularDistancia(lat1, lat2, lon1, lon2); // mostramos o resultado System.out.println("A distância entre os dois pontos é: " + distancia + "kms"); System.out.println("\n"); } // função que recebe dois pontos na terra e retorna a distância // entre eles em quilômetros public static double calcularDistancia(double lat1, double lat2, double lon1, double lon2){ double raio_terra = 6378.137; // raio da terra em quilômetros // o primeiro passo é converter as latitudes e longitudes // para radianos lon1 = Math.toRadians(lon1); lon2 = Math.toRadians(lon2); lat1 = Math.toRadians(lat1); lat2 = Math.toRadians(lat2); // agora aplicamos a Fórmula de Haversine double dlon = lon2 - lon1; double dlat = lat2 - lat1; double a = Math.pow(Math.sin(dlat / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(dlon / 2),2); double c = 2 * Math.asin(Math.sqrt(a)); // e retornamos a distância return(c * raio_terra); } } Ao executar este código Java nós teremos o seguinte resultado: Informe a primeira latitude: -16.674551 Informe a primeira longitude: -49.303598 Informe a segunda latitude: -15.579321 Informe a segunda longitude: -56.10009 A distância entre os dois pontos é: 736.9183827638687kms Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Comando Create Alignment from Objects Qual dos objetos abaixo não pode ser usado para criar um alinhamento quando acionamos o comando Create Alignment from Objects, disponível no item Alignment da aba Create Design? A) Line B) Arc C) Circle D) Polyline Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?# cria uma string palavra = "ESTUDAR" letras = ['A', 'B', 'C'] letras[0], letras[2] = palavra[3], palavra[1] print(letras) A) ['T', 'B', 'S'] B) Um erro TypeError: 'tuple' object does not support item assignment C) ['B', 'A', 'C'] D) ['U', 'B', 'S'] E) Um erro TypeError: 'str' object is not callable Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(IDECAN - 2021 - Perito Criminal de 1ª Classe (PEFOCE)/Engenharia Civil) O aparelho utilizado para medição e registro de precipitações é o A) pluviômetro. B) fluviógrafo. C) pluviógrafo. D) limnímetro. E) limnígrafo. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalações prediais de combate a incêndio O fogo é fundamental para o desenvolvimento da humanidade, mas é muito danoso às edificações, visto que pode causar prejuízos financeiros e sociais. Para tanto, as edificações necessitam de instalações prediais de combate a incêndio, que são projetadas para evitar prejuízos materiais e de vida decorrentes de um incêndio na edificação. Sobre as instalações prediais de combate a incêndio, são feitas as seguintes proposições: I - Têm sistemas concebidos para preservar a vida dos ocupantes das edificações e de áreas de risco, em caso de incêndio. II - São projetadas com dispositivos que dificultam a propagação do fogo, diminuindo os prejuízos ao patrimônio e ao meio ambiente. III - São concebidas para controlar e extinguir o incêndio, bem como favorecer a entrada do corpo de bombeiros na edificação. Quais proposições estão corretas? A) I, II e III. B) I e II. C) II e III. D) I e III. E) Apenas a III. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2024 - ITAIPU - Técnico em Hidrologia) Em relação ao tempo, o balanço hídrico de uma bacia A) aumenta com a vazão de entrada e diminui com a vazão de evaporação. B) Aumenta com a vazão de entrada e aumenta com a vazão de evaporação. C) diminui com a vazão de entrada e diminui com a vazão de saída. D) diminui com a vazão de saída e diminui com a precipitação. E) aumenta com a vazão de evaporação e diminui com a precipitação. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento 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 |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades 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 |