Você está aqui: Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valoresQuantidade de visualizações: 2 vezes |
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo: Veja agora o código Java Swing completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; 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"}, {"Fernando Gomes", "15", "Masculino"}, {"Carlos Vieira", "40", "Masculino"} }; // constrói a tabela JTable tabela = new JTable(conteudo, colunas); // quero colorir o fundo das células da segunda coluna // se o valor encontrado for menor que 20 TableCellRenderer tcr = new Colorir(); TableColumn column = tabela.getColumnModel().getColumn(1); column.setCellRenderer(tcr); 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 Colorir extends JLabel implements TableCellRenderer{ public Colorir(){ setOpaque(true); } @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(Integer.parseInt(value.toString()) < 20){ setBackground(Color.YELLOW); } else{ setBackground(table.getBackground()); } setText(value.toString()); return this; } @Override public void validate() {} @Override public void revalidate() {} @Override protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {} @Override public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {} } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Java Swing - JTable e classes relacionadas ::: JTable |
Como inserir novas colunas em uma JTable do Java Swing em tempo de execução usando o método addColumn() da classe DefaultTableModelQuantidade de visualizações: 168 vezes |
Em algumas situações nós precisamos adicionar uma ou mais colunas em uma JTable do Java Swing. Entre as formas possíveis, uma é por meio do uso da função addColumn() da classe DefaultTableModel. Este método recebe, no exemplo abaixo, uma String contendo o nome da coluna a ser criada. Veja o código completo para a aplicação Java Swing: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); final DefaultTableModel modelo = new DefaultTableModel(); // constrói a tabela JTable tabela = new JTable(modelo); // Cria duas colunas modelo.addColumn("Nome"); modelo.addColumn("Idade"); JButton btn = new JButton("Adicionar Colunas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String titulo = JOptionPane.showInputDialog( null, "Informe o título da nova coluna:"); // Adiciona uma coluna modelo.addColumn(titulo); } } ); tabela.setPreferredScrollableViewportSize( new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ponto médio entre dois pontos no plano usando Java - Geometria com JavaQuantidade de visualizações: 2862 vezes |
Nesta dica mostrarei como é possível usar um trecho de código Java para obter o ponto médio entre dois pontos quaisquer no plano, ou seja, no R2. Em mais dicas dessa seção você aprenderá como isso pode ser feito no R3 (espaço) Comece analisando a figura abaixo, na qual temos dois pontos A e B, com suas coordenadas correspondentes, e o ponto médio M: Assim, dados dois pontos A = (2, 9) e B = (10, 2) no plano cartesiano R2, as coordenadas x e y do ponto médio são calculadas por meio da seguinte fórmula: \[x = \frac{x_1 + x_2}{2}\] \[y = \frac{y_1 + y_2}{2}\] Colocando na fórmula os valores que já temos: \[x = \frac{2 + 10}{2} = \frac{12}{2} = 6 \] \[y = \frac{9 + 2}{2} = \frac{11}{2} = 5.5 \] Assim, as coordenadas do ponto médio será (x = 6, y = 5.5). E agora veja o código Java completo para calcular as coordenadas do ponto médio a partir de dois pontos no plano cartesiano (plano 2D ou R2): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ Scanner entrada = new Scanner(System.in); // x e y do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); float x1 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); float y1 = Float.parseFloat(entrada.nextLine()); // x e y do segundo ponto System.out.print("Coordenada x do segundo ponto: "); float x2 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); float y2 = Float.parseFloat(entrada.nextLine()); // vamos calcular as coordenadas x e y do ponto médio float x = (x1 + x2) / 2; float y = (y1 + y2) / 2; // vamos mostrar o resultado System.out.println("As coordenadas do ponto médio são: (x = " + x + ", y = " + y + ")"); } } Ao executarmos este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 2 Coordenada y do primeiro ponto: 9 Coordenada x do segundo ponto: 10 Coordenada y do segundo ponto: 2 As coordenadas do ponto médio são: (x = 6.0, y = 5.5) |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o fatorial de um determinado número inteiroQuantidade de visualizações: 2357 vezes |
Pergunta/Tarefa: Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. O fatorial de um número n pode ser definido recursivamente da seguinte forma: 0! = 1; n! = n x (n - 1)!; sendo n > 0 public static long fatorial(int n){ // sua implementação aqui } Informe um número inteiro: 5 O fatorial do número informado é: 120 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar o número inteiro System.out.print("Informe um número inteiro: "); // lê o número int numero = Integer.parseInt(entrada.nextLine()); // calcula o fatorial corresponde ao número informado System.out.print("O fatorial do número informado é: " + fatorial(numero)); System.out.println("\n"); } // método recursivo que calcula o fatorial de um inteiro informado public static long fatorial(int n){ if(n == 0){ // caso base....retornar return 1; } else{ return n * fatorial(n - 1); // efetua mais uma chamada recursiva } } } |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares intermediários Uma das primeiras etapas ao desenvolver um projeto estrutural é a concepção estrutural. Nessa etapa, é necessário estimar a dimensão dos elementos estruturais e o pré-dimensionamento com base na NBR 6118/2014. O engenheiro Thiago foi convidado para pré-dimensionar um pilar intermediário de concreto armado. A seguir, os cuidados tomados por ele: I. O pilar intermediário foi calculado com base na força atuante centrada. II. No pilar intermediário, não foi calculado o momento de 2ª ordem. III. O pilar foi calculado como pilar de canto. Thiago procedeu corretamente em: A) I, apenas. B) I e II, apenas. C) II, apenas. D) I e III, apenas. E) II e III, apenas. 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 A norma NBR 13714 estabelece os critérios mínimos exigíveis para sistemas de hidrantes e de mangotinhos, para uso exclusivo no combate a incêndio. Com base nesses critérios, assinale a alternativa correta: A) Uma edificação com área de 850m2 não necessita de um sistema de mangotinhos ou de hidrantes para proteção contra incêndio. B) O ponto de tomada de água para hidrantes e mangotinhos pode ser instalado a até 10m de distância das portas externas e escadas. C) Os hidrantes devem ser distribuídos de tal forma que qualquer ponto da área a ser protegida seja alcançado por no mínimo dois esguichos. D) Uma edificação com parede externa de 12m de altura necessita que o hidrante externo seja instalado afastado no máximo 18m da edificação. E) Uma edificação com parede externa de 12m de altura necessita que o ponto de tomada de água seja instalado a no máximo 2m em relação ao piso. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil dos prepostos e preponentes De acordo com as definições de preponente, assinale a alternativa correta. A) O preponente responde com o gerente pelos atos que este pratique em seu próprio nome, mas à conta daquele. B) O preposto pode, a qualquer tempo no exercício do seu oficio, fazer-se substituir por alguém de sua confiança no desempenho da preposição. C) Ao preposto não é vedado negociar por conta própria ou de terceiro, tampouco lhe é vedado participar, desde que indiretamente, de operação do mesmo gênero da que lhe foi cometida. D) O gerente não pode estar em juízo em nome do preponente, mesmo que pelas obrigações resultantes do exercício da sua função. E) A responsabilidade dos preponentes pelos atos de quaisquer prepostos, praticados nos seus estabelecimentos e relativos à atividade da empresa, é limitada aos atos autorizados por escrito. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual das formas abaixo é válida para a criação de um DICIONÁRIO em Python? A) estados = ["SP": "SÃO PAULO", "GO": "GOIÁS"] B) estados = ("SP": "SÃO PAULO", "GO": "GOIÁS") C) estados = set("SP": "SÃO PAULO", "GO": "GOIÁS") D) estados = "SP": "SÃO PAULO", "GO": "GOIÁS" E) estados = {"SP": "SÃO PAULO", "GO": "GOIÁS"} Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual é a forma correta de se invocar uma função JavaScript chamada "calcular"? A) call function calcular(); B) calcular(); C) def call calcular(); D) call calcular(); Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e 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 |