Você está aqui: Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valores

Quantidade 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 DefaultTableModel

Quantidade 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 Java

Quantidade 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 inteiro

Quantidade 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
Escreva um método recursivo que recebe um valor inteiro do tipo int e retorne seu fatorial como um long. Seu método deverá possuir a seguinte assinatura:

public static long fatorial(int n){
  // sua implementação aqui
}
Sua saída deverá ser parecida com:

Informe um número inteiro: 5
O fatorial do número informado é: 120
Resposta/Solução:

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

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 55 usuários muito felizes estudando em nosso site.