Java - Classes e Componentes - JTable |
Mais Dicas e Truques de Programação |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como definir a cor de fundo para um JTextAreaQuantidade de visualizações: 7938 vezes |
Nesta dica mostrarei como podemos aplicar uma cor de fundo a um controle área de texto, ou seja, um JTextArea do Java Swing. Para isso nós só precisamos fazer uma chamada ao seu método setBackground() e passar a cor desejada. Veja um exemplo de como isso pode ser feito: textArea = new JTextArea(10, 20); // Define a cor de fundo textArea.setBackground(Color.YELLOW); Note que aqui nós temos uma variável chamada textArea, do tipo JTextArea. |
Java ::: Classes e Componentes ::: JTextField |
Java Swing - Como definir a cor do texto de um JTextField usando o método setForeground()Quantidade de visualizações: 8915 vezes |
Nesta dica eu mostro como podemos usar o método setForeground() da classe JTextField para definir a cor de seu texto. Note que esta função pede um objeto da classe Color, por isso, neste exemplo, forneci o valor Color.BLUE. Veja o código Java Swing completo: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JTextField texto; public Estudos() { super("Estudos Swing"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria um botão JButton btn = new JButton("Definir cor do texto"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // vamos definir a cor do texto como azul texto.setForeground(Color.BLUE); } } ); // Cria o JTextField texto = new JTextField(10); // Adiciona o botão à janela c.add(btn); // Adiciona o JTextField à janela c.add(texto); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Coleções (Collections) ::: HashMap |
Java Collections - Como usar a classe HashMap da linguagem JavaQuantidade de visualizações: 35403 vezes |
A classe HashMap, do pacote java.util, é uma das principais implementações da interface Map. Além de fornecer todas as operações opcionais de um map, esta classe permite a inserção de chaves e valores com o valor null. Em realidade, a classe HashMap é bem similar à classe Hashtable, com a diferença que HashMap não é sincronizada (tenha cuidado ao usuá-la em ambiente de múltiplas threads) e permite valores e chaves null. Veja sua posição na hierarquia de classes Java: java.lang.Object java.util.AbstractMap<K,V> java.util.HashMap<K,V> O uso principal da classe HashMap é quando queremos associar chaves e valores e, posteriormente, recuperar valores baseados em suas chaves. Veja um exemplo no qual temos cidades e habitantes: package arquivodecodigos; import java.util.*; public class Estudos{ @SuppressWarnings("unchecked") public static void main(String[] args){ // cria uma nova instância de HashMap HashMap cidadesHabitantes = new HashMap(); // vamos adicionar algumas chaves e seus valores cidadesHabitantes.put("Goiânia", new Integer(4334598)); cidadesHabitantes.put("São Paulo", new Integer(49282768)); cidadesHabitantes.put("Brasília", new Integer(96736887)); // vamos obter uma view dos mapeamentos Set set = cidadesHabitantes.entrySet(); // obtemos um iterador Iterator i = set.iterator(); // e finalmente exibimos todas as chaves e seus valores while(i.hasNext()){ Map.Entry entrada = (Map.Entry)i.next(); System.out.println("Chave: " + entrada.getKey() + " - Valor: " + entrada.getValue()); } System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: Chave: Goiânia - Valor: 4334598 Chave: Brasília - Valor: 96736887 Chave: São Paulo - Valor: 49282768 Uma observação importante em relação à classe HashMap é que esta não honra nenhuma ordem específica de seus elementos, ou seja, a ordem dos pares chave-valor em uma operação de exibição pode ser bem diferente da ordem de inserção. |
Java ::: Lista de Exercícios Resolvidos (Algorítmos Resolvidos) ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Percorrer todos os elementos de um vetor de int e exibir a soma de seus valoresQuantidade de visualizações: 11466 vezes |
Pergunta/Tarefa: Considere o seguinte vetor de inteiros: // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; A soma dos valores do vetor é: 32 Resposta/Solução: public static void main(String[] args){ // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; // o primeiro passo é criar uma variável que vai receber a soma // dos valores dos elementos int soma = 0; // agora vamos usar uma laço for para percorrer todos os elementos // do vetor, obter o valor do elemento atual e adicionar ao valor atual // da variável soma for(int i = 0; i < valores.length; i++){ soma = soma + valores[i]; // poderia também ser escrito assim: // soma += valores[i]; } // vamos exibir a soma dos valores do vetor System.out.println("A soma dos valores do vetor é: " + soma); } |
jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico |
jQuery para iniciantes - Como obter o conteúdo de um elemento HTML usando a função html() do jQueryQuantidade de visualizações: 8173 vezes |
O método html() da biblioteca jQuery nos permite obter o conteúdo (a propriedade innerHTML) do primeiro da série de elementos encontrados. Considere o seguinte elemento DIV:<div id="div_1"> <button>Clique Aqui</button> </div> Veja agora o código JavaScript que obtém todo o conteúdo HTML entre as tags <div> e </div>: <!doctype html> <html> <head> <title>Estudos jQuery</title> </head> <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> <body> <div id="div_1"> <button>Clique Aqui</button> </div> <script type="text/javascript"> var html = $("#div_1").html(); window.alert("O conteúdo HTML da tag DIV é: " + html); </script> </body> </html> Ao abrir esta página HTML você terá um resultado parecido com: O conteúdo HTML da tag DIV é: <button>Clique Aqui</button>. Esta dica foi revisada e testada no jQuery 3.6.0. |
CSS - Cascading Style Sheets ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo |
CSS para Web Designers - Como definir uma imagem de fundo para suas páginas HTMLQuantidade de visualizações: 6396 vezes |
Nesta dica mostrarei como usar a propriedade background-image do CSS (Cascading Style Sheet) para aplicar uma imagem de fundo às nossas páginas HTML. Note que, neste exemplo, não controlamos como e se a imagem de fundo será repetida. Em outras dicas dessa seção você aprenderá como isso pode ser feito. Veja o resultado desta dica na figura abaixo: ![]() E agora veja o código HTML completo para o exemplo, incluindo a marcação CSS: <html> <head> <title>Estudando CSS</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type="text/css"> body {background-image: url('fundo2.jpg')} </style> </head> <body> </body> </html> |
Python ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra usando PythonQuantidade de visualizações: 42 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 Python completo: # vamos importar o módulo Math import math # função que recebe dois pontos na terra e retorna a distância # entre eles em quilômetros def calcularDistancia(lat1, lat2, lon1, lon2): raio_terra = 6378.137 # raio da terra em quilômetros # o primeiro passo é converter as latitudes e longitudes # para radianos lon1 = math.radians(lon1) lon2 = math.radians(lon2) lat1 = math.radians(lat1) lat2 = math.radians(lat2) # agora aplicamos a Fórmula de Haversine dlon = lon2 - lon1 dlat = lat2 - lat1 a = math.pow(math.sin(dlat / 2), 2) + math.cos(lat1) * math.cos(lat2) \ * math.pow(math.sin(dlon / 2),2) c = 2 * math.asin(math.sqrt(a)) # e retornamos a distância return(c * raio_terra) # método principal def main(): # vamos solicitar a latitude e longitude das duas localizações lat1 = float(input("Informe a primeira latitude: ")) lon1 = float(input("Informe a primeira longitude: ")) lat2 = float(input("Informe a segunda latitude: ")) lon2 = float(input("Informe a segunda longitude: ")) # vamos calcular a distância entre os dois pontos em Kms distancia = calcularDistancia(lat1, lat2, lon1, lon2) # mostramos o resultado print("A distância entre os dois pontos é: {0} kms".format(distancia)) if __name__== "__main__": main() Ao executar este código Python 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 Cuibá-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. |
Java ::: Dicas & Truques ::: Imagens |
Manipulação de imagens em Java - Como carregar imagens JPG (JPEG), GIF ou PNG usando o método getImage() da classe ToolkitQuantidade de visualizações: 21577 vezes |
O método getImage() da classe Toolkit retorna um objeto da classe Image que obtém informações de imagem (pixels) a partir do caminho informado. Veja que este método não verifica se a imagem informada para o método existe ou se foi carregada com sucesso. Veja mais dicas nesta seção para aprender a realizar tais tarefas. O código abaixo mostra como chamar o método getImage() para carregar uma imagem ao clicar em um botão: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ private Image imagem = null; public Estudos() { super("Estudos Java"); Container c = getContentPane(); c.setLayout(new FlowLayout()); JButton btn = new JButton("Carregar Imagem"); btn.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ // imagem a ser carregada String minhaImagem = "C:\\estudos_java\\lago.jpg"; // Obtém o Toolkit padrão Toolkit toolkit = Toolkit.getDefaultToolkit(); imagem = toolkit.getImage(minhaImagem); JOptionPane.showMessageDialog(null, "A imagem foi carregada. Agora é só manipulá-la."); } } ); c.add(btn); 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 nós teremos o seguinte resultado: A imagem foi carregada. Agora é só manipulá-la. |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como usar o método createTempFile() da classe File da linguagem Java para criar um arquivo temporário, escrever nele e excluí-lo ao fechar o programa - RevisadoQuantidade de visualizações: 13778 vezes |
Nesta dica mostrarei como é possível usar o método createTempFile() da classe File, do pacote java.io, para criar um arquivo temporário em Java. No exemplo vamos criar o arquivo, vamos escrever nele e depois excluí-lo ao fecharmos o programa. Veja o código completo: package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ // local de criação do arquivo String local = "C:\\estudos_java"; // vamos tentar criar o arquivo então try{ File arquivo = File.createTempFile("teste", ".txt", new File(local)); // vamos excluir o arquivo ao fechar a aplicação arquivo.deleteOnExit(); // escreve no arquivo temporário BufferedWriter out = new BufferedWriter(new FileWriter(arquivo)); out.write("Arquivo de Códigos"); out.close(); // trecho de código para fazer com o programa espere // uma tecla antes de fechar // Este procedimento é para que vc veja que o arquivo // temporario realmente foi criado no diretório indicado InputStreamReader ent = new InputStreamReader(System.in); BufferedReader cons = new BufferedReader(ent); System.out.println("Verifique se o arquivo foi criado com sucesso."); System.out.print("Digite alguma coisa e pressione Enter para sair: "); String tecla = cons.readLine(); } catch(IOException e){ System.out.println("Houve um erro: " + e.getMessage()); } } } Ao executarmos este código nós teremos o seguinte resultado: Verifique se o arquivo foi criado com sucesso. Digite alguma coisa e pressione Enter para sair: b Antes de digitar alguma coisa e pressionar Enter, olhe no diretório "C:\\estudos_java" (o seu vai ser diferente, é claro) e você verá um arquivo com um nome parecido com: teste2606085315507863387.txt Quando você pressionar Enter, o programa terminará e o arquivo será excluído automaticamente. Esta dica foi revisada e testada no Java 8. |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter uma lista das funções de data e hora suportadas pelo MySQL usando o método getTimeDateFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 4508 vezes |
Em algumas situações gostaríamos de, via código, obter uma lista das funções de data e hora suportadas pelo MySQL. Para isso podemos usar o método getTimeDateFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getTimeDateFunctions() de forma a retornar a lista de funções de data e hora separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções de data e hora suportados no MySQL 5.0: package estudosbancodados; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; 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 a lista de funções de data e hora disponíveis // nesta versão do MySQL String funcoesDataHora = dbmd.getTimeDateFunctions(); // como a lista de funções está separada por vírgulas, vamos obter // uma matriz de strings String funcoes[] = funcoesDataHora.split(","); // vamos mostrar o resultado for(int i = 0; i < funcoes.length; i++){ System.out.println(funcoes[i]); } } 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); } } } Ao executarmos este código teremos o seguinte resultado: DAYOFWEEK WEEKDAY DAYOFMONTH DAYOFYEAR MONTH DAYNAME MONTHNAME QUARTER WEEK YEAR HOUR MINUTE SECOND PERIOD_ADD PERIOD_DIFF TO_DAYS FROM_DAYS DATE_FORMAT TIME_FORMAT CURDATE CURRENT_DATE CURTIME CURRENT_TIME NOW SYSDATE CURRENT_TIMESTAMP UNIX_TIMESTAMP FROM_UNIXTIME SEC_TO_TIME TIME_TO_SEC |
Quem Somos |
![]() Osmar J. Silva
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Programador Freelancer WhatsApp +55 (062) 98553-6711 Goiânia-GO Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
![]() José de Angelis
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Programador Freelancer WhatsApp +55 (062) 98243-1195 Goiânia-GO Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |