Java ::: Java Swing - JTable e classes relacionadas ::: JTable |
Como aplicar cores alternadas às linhas de uma JTable do Java SwingQuantidade 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 segundosQuantidade 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 CQuantidade 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 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 JavaQuantidade 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 JavaQuantidade 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 PHPQuantidade 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 JavaQuantidade 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 ArmadoQuantidade 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 ν (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: ν é 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. γc é o fator de ponderação do concreto e, em geral, possui o valor 1,4. Ao dividirmos o fck pelo γ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 ν (ni) é o valor que, junto com o μ (mi), forma a dupla de fatores para o ábaco de VENTURINI que nos retornará o valor de ω (ô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 ν de um pilar: a) Se ν < 0,30 -> pode ser adequado reduzir a seção transversal do pilar. b) Se ν > 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çãoQuantidade 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 DatabaseMetaDataQuantidade 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 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 |
Nossas 20 dicas & truques de programação mais populares |
Android Java - Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialog Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
Android Java - Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialog Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |