Java ::: Java Swing - JTable e classes relacionadas ::: JTable

Como aplicar cores alternadas às linhas de uma JTable do Java Swing

Quantidade de visualizações: 243 vezes
Nesta dica eu mostrarei como aplicar o tão falado "efeito zebrinha" nas linhas de uma tabela JTable do Java Swing. A técnica é muito simples é, uma vez aprendida, possibilita a criação de códigos cada vez mais interessantes.

Veja como efetuo uma chamada ao método prepareRenderer() para obter um Component representando a célula que está sendo renderizada. Se o índice da linha da célula for par e não estiver selecionada, nós efetuamos uma chamada à setBackground() da classe Component para definir a sua cor de fundo.

Veja o código completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;

public class Estudos extends JFrame {
  public Estudos() {
    super("Exemplo de uma tabela com efeito zebrinha");

    // colunas da tabela
    String[] colunas = {"Cidade", "Estado", "Habitantes"};

    // conteúdo da tabela   
    Object[][] conteudo = {
      {"Goiânia", "GO", "43.023.432"},
      {"São Paulo", "SP", "5.343.234"},
      {"Rio de Janeiro", "RJ", "6.434.212"},
      {"Jussara", "GO", "87.454"},
      {"Barra do Garças", "MT", "64.344"}
    };

    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas) {
      @Override
      public Component prepareRenderer(TableCellRenderer renderer,
        int rowIndex, int vColIndex) {
        
        Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
        
        if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) {
          c.setBackground(Color.YELLOW);
        } 
        else {
          c.setBackground(getBackground());
        }
        return c;
      }
    };

    tabela.setPreferredScrollableViewportSize(new Dimension(350, 150));

    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);
  }
}

Ao executar este código Java Swing nós teremos o seguinte resultado:




PHP ::: Dicas & Truques ::: Data e Hora

Datas e horas em PHP - Como obter o fuso horário em segundos

Quantidade de visualizações: 40 vezes
Nesta dica veremos como usar date("Z") para retornar o fuso horário da nossa localidade em PHP. Lembre-se de que a função date() com o parâmetro "Z" retorna o fuso horário em segundos. Este valor reflete a diferença em segundos que estamos do Tempo Universal Coordenado (Coordinated Universal Time - UTC), também conhecido como tempo civil, e é o fuso horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo.

Veja o código PHP completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $fuso_segundos = date("Z");
  $horas = ($fuso_segundos / 60) / 60;
  echo "O fuso horário em segundos é " .
    $fuso_segundos . " (" . $horas . " horas)";
?>
  
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

O fuso horário em segundos é 7200 (2 horas)


C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico

Exercícios Resolvidos de C - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em C

Quantidade de visualizações: 760 vezes
Pergunta/Tarefa:

Escreva um programa C que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10().

Sua saída deverá ser parecida com:

Informe um número inteiro: 48763
A soma do primeiro e do último dígito é: 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>

int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português

  int numero, quant, primeiro_digito, ultimo_digito, soma;

  // vamos pedir para o usuário informar um número inteiro
  printf("Informe um número inteiro: ");
  scanf("%d", &numero);
    
  // vamos obter a quantidade (-1) de dígitos no número informado
  quant = (int)log10(numero);
  primeiro_digito = (int)(numero / pow(10, quant));
  ultimo_digito = numero % 10;
  	
  // soma o primeiro e o último dígito
  soma = primeiro_digito + ultimo_digito;
	
  // mostra o resultado
  printf("A soma do primeiro e do último dígito é: %d", soma);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como converter um vetor (array) em uma List usando o método asList() da classe Arrays da linguagem Java

Quantidade de visualizações: 15002 vezes
Em algumas situações nós gostaríamos de obter uma List, ou melhor, um objeto da interface List, a partir de um vetor (um array). Nesta dica mostrarei como isso é possível. Nós vamos criar um vetor de cinco objetos da classe Integer, vamos instanciar estes objetos com valores inteiros e, em seguida, vamos obter um objeto List contendo os mesmos.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.util.*;
 
public class Estudos{
  public static void main(String[] args){
    Integer[] valores = new Integer[5];
  
    // inicializa os elementos do array
    valores[0] = 1;
    valores[1] = 2;
    valores[2] = 3;
    valores[3] = 4;
    valores[4] = 5;
     
    List lista = Arrays.asList(valores);
 
    // percorre a lista
    for(int i = 0; i < lista.size(); i++){
      Integer valor = (Integer)(lista.get(i));
      System.out.println(valor.toString());
    }
   
    System.exit(0);
  }
}

Ao executar este código nós teremos o seguinte resultado:

1
2
3
4
5


Java ::: Dicas & Truques ::: Data e Hora

Como adicionar ou subtrair dias de uma data e hora usando o método add() da classe Calendar do Java

Quantidade de visualizações: 13670 vezes
Este trecho de código mostra como usar o método add() da classe Calendar da linguagem Java para adicionar ou subtrair dias de uma data. Veja que este método requer o campo de calendário e um número inteiro. Para o nosso propósito, o campo de calendário pode ser DAY_OF_MONTH ou DATE. Um valor positivo adiciona dias enquanto um valor negativo subtrai.

Veja o código completo:

package arquivodecodigos;

import java.util.*;
import java.text.*;
 
public class Estudos{ 
  public static void main(String args[]){ 
    Calendar agora = Calendar.getInstance();
     
    // formata e exibe a data e hora atual
    Format formato = new SimpleDateFormat(
      "dd/MM/yyyy - HH:mm:ss");
    System.out.println("Hoje é: " + 
      formato.format(agora.getTime()));
 
    // vamos adicionar 5 dias a esta data
    agora.add(Calendar.DAY_OF_MONTH, 5);
    // o mesmo resultado pode ser obtido com
    // agora.add(Calendar.DATE, 5);
 
    // formata e exibe o resultado
    formato = new SimpleDateFormat(
      "dd/MM/yyyy - HH:mm:ss");
    System.out.println("Daqui a 5 dias será: " +
      formato.format(agora.getTime()));
  } 
}

Ao executar este código nós teremos o seguinte resultado:

Hoje é: 19/03/2021 - 22:13:54
Daqui a 5 dias será: 24/03/2021 - 22:13:54


PHP ::: Dicas & Truques ::: Gráficos e Cores

Gráficos em PHP - Como criar imagens dinamicamente usando a função imagecreate() do PHP

Quantidade de visualizações: 12937 vezes
O primeiro passo para a criação de imagens dinâmicas em PHP é entender o funcionamento da função imagecreate(). Esta função retorna uma referência para uma imagem criada na memória com a largura e altura especificadas e na cor branca. Assim, tudo que temos a fazer é escrever ou desenhar nesta área branca e finalmente salvar ou enviar para o browser.

Veja um exemplo de código no qual criamos uma imagem PNG com a largura de 200 pixels e altura de 150 pixels. Note que a cor de fundo é azul e a cor do texto é branca:

<?
  // informamos ao browser que o conteúdo é uma imagem PNG
  header("Content-type: image/png");
  // criamos uma imagem com largura de 200 e altura de 150 pixels
  $imagem = imagecreate(200, 150);
  // cor de fundo será azul
  $cor_fundo = imagecolorallocate($imagem, 0, 0, 255);
  // cor do texto será branca
  $cor_texto = imagecolorallocate($imagem, 255, 255, 255);
  // escrevemos na imagem
  imagestring($imagem, 3, 10, 10,  "Arquivo de Códigos", $cor_texto);
  // mandamos para o browser
  imagepng($imagem);
  // liberamos a memória
  imagedestroy($imagem);
?>

Para visualizar este resultado, salve este código como imagem.php e use o nome deste arquivo na propriedade src de uma imagem em uma outra página. Veja:

<img src="imagem.php">



Java ::: Fundamentos da Linguagem ::: Estruturas de Controle

Tutorial de Java - Como usar a instrução condicional if e if...else do Java

Quantidade de visualizações: 54075 vezes
Instruções if e if...else permitem executar trechos de códigos baseado em condições. Veja um exemplo:

public class Estudos{
  public static void main(String args[]){
    int valor = 5;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
  }
}

Neste programa, a instrução

System.out.println("Valor maior que 3");

será executada somente se o teste (valor > 3) for verdadeiro. Observe que a expressão de teste deverá sempre ser do tipo boolean (true ou false).

Neste exemplo temos apenas uma instrução a ser executada. Isso dispensa o uso das chaves ao redor do bloco de códigos. Se o bloco contiver mais de uma instrução, as chaves são necessárias. Veja:

public class Estudos{
  public static void main(String args[]){
    int valor = 5;
    
    if(valor > 3){
      System.out.println("Valor maior que 3");
      System.out.println("O valor é: " + valor);
    }
  }
} 

A instrução if...else (se...senão) é usada quando queremos fornecer um caminho alternativo ao código. Veja:

public class Estudos{
  public static void main(String args[]){
    int valor = 1;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
    else
      System.out.println("Valor menor que 3");
  }
}

Você pode ainda usar if...else if...else (se...senão se...senão). Veja:

public class Estudos{
  public static void main(String args[]){
    int valor = 3;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
    else if(valor < 3)
      System.out.println("Valor menor que 3");
    else
      System.out.println("Valor é igual a 3");
  }
} 



Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural

Como calcular a Força Normal Adimensional ou Força Normal Reduzida de um pilar em Python - Python para Estruturas de Concreto Armado

Quantidade de visualizações: 420 vezes


A Força Normal Adimensional de um pilar, também chamada de Força Normal Reduzida, é representada pela letra grega &#957; (ni) e nos dá uma idéia da magnitude da força normal que está sendo aplicada na seção transversal de um pilar.

A fórmula para o cálculo da Força Normal Adimensional pode ser representada da seguinte forma:

\[\nu = \frac{N_\text{sd}}{A_\text{c} \cdot \frac{f_\text{ck}}{\gamma _\text{c}}} \]

Onde:

&#957; é a Força Normal Adimensional sem unidade;

Nd é a força normal de projeto, em kN.

fck é a resistência característica do concreto em kN/cm2. Para converter de Mpa para kN/cm2 nós só precisamos dividir por 10.

&#947;c é o fator de ponderação do concreto e, em geral, possui o valor 1,4. Ao dividirmos o fck pelo &#947;c nós chegamos ao fcd, que é resistência de cálculo do concreto.

Note que o valor encontrado para a força normal adimensional &#957; (ni) é o valor que, junto com o &#956; (mi), forma a dupla de fatores para o ábaco de VENTURINI que nos retornará o valor de &#969; (ômega) que nos ajudará a calcular a área de aço (As) do pilar.

Há duas considerações importantes em relação à Força Normal Adimensional &#957; de um pilar:

a) Se &#957; < 0,30 -> pode ser adequado reduzir a seção transversal do pilar.

b) Se &#957; > 1,30 -> pode ser conveniente aumentar a seção transversal do pilar.

Agora vamos ver o código Python? Note que pediremos para o usuário informar as dimensões do pilar nas direções x e y em centímetros, a carga total no pilar em kN e o fck do concreto em Mpa e retornaremos o valor da força normal adimensional:

# método principal
def main():
  # vamos pedir as dimensões do pilar
  hx = float(input("Informe a dimensão do pilar na direção x (em cm): "))
  hy = float(input("Informe a dimensão do pilar na direção y (em cm): "))

  # vamos pedir a carga total no pilar em kN
  Nk = float(input("Informe a carga total no pilar (em kN): "))

  # agora vamos obter o FCK do concreto em MPa
  fck = float(input("Informe o FCK do concreto (em MPa): "))
  # vamos converter MPa para kN/cm2
  fck = fck / 10

  # vamos obter o menor lado do pilar (menor dimensão da seção transversal)
  if (hx < hy):
    b = hx
  else:
    b = hy

  # agora vamos calcular a área do pilar em centímetros quadrados
  area = hx * hy
 
  # a área está de acordo com a norma NBR 6118 (ABNT, 2014)
  if (area < 360):
    print("A área do pilar não pode ser inferior a 360cm2")
    return

  # vamos calcular a força normal de projeto Nd
  yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1
  yf = 1.4 # regra geral para concreto armado
  Nd = yn * yf * Nk

  # vamos fixar o fator de ponderação do concreto em 1.4
  yc = 1.4

  # e agora calculamos a força normal adimensional do pilar
  fna = Nd / (area * (fck / yc))

  # e mostramos o resultado
  print("\nA Força Normal Adimensional do pilar é: {0}".format(round(fna, 2)))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe a dimensão do pilar na direção x (em cm): 40
Informe a dimensão do pilar na direção y (em cm): 19
Informe a carga total no pilar (em kN): 841.35
Informe o FCK do concreto (em MPa): 30

A Força Normal Adimensional do pilar é: 0.72


Python ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em Python usando o operador de adição

Quantidade de visualizações: 13310 vezes
A concatenação de textos, frases ou palavras pode ser feita em Python usando-se o operador de soma (ou adição). Veja um exemplo de como isso pode ser feito:

# método principal  
def main():
  frase1 = "Gosto de "
  frase2 = "Python"
  frase3 = frase1 + frase2
  # mostra o resultado
  print(frase3)

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

c:\estudos_python>python estudos.py
Gosto de Python


Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter os tipos de tabelas suportados pelo MySQL usando o método getTableTypes() da classe DatabaseMetaData

Quantidade de visualizações: 5441 vezes
Em algumas situações precisamos obter os tipos de tabelas suportados por uma determinada versão do MySQL. Isso pode ser feito com uma chamada ao método getTableTypes() da classe com.mysql.jdbc.DatabaseMetaData. Um objeto desta classe é obtido a partir do método getMetaData() da interface Connection (para o driver com.mysql.jdbc.Driver, é claro).

A assinatura do método getTableTypes() é:

public ResultSet getTableTypes() throws SQLException 
O retorno do método é um ResultSet contendo os tipos de tabelas, tais como "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS" e "SYNONYM".

Vamos ver um exemplo? Veja um trecho de código que usei para listar os tipos de tabelas disponíveis no MySQL 5.0:

package estudosbancodados;

import java.sql.*;

public class EstudosBancoDados{
  public static void main(String[] args) {
    // strings de conexão
    String databaseURL = "jdbc:mysql://localhost/estudos";
    String usuario = "root";
    String senha = "osmar1234";
    String driverName = "com.mysql.jdbc.Driver";

    try {
      Class.forName(driverName).newInstance();
      Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);

      // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de tabelas suportadas por esta versão do MySQL
      ResultSet tiposTabelas = dbmd.getTableTypes();
      while(tiposTabelas.next()){
        System.out.println(tiposTabelas.getString("TABLE_TYPE"));
      }
      
      // vamos fechar o ResultSet
      tiposTabelas.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
    catch (Exception e) {
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
    }
  }
}

O resultado da execução deste código foi:

TABLE
VIEW
LOCAL TEMPORARY

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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