Você está aqui: Java ::: Dicas & Truques ::: Formulários e Janelas |
Como posicionar componentes em sobre uma imagem de fundo em uma JFrameQuantidade de visualizações: 13078 vezes |
/* Este exemplo mostra como exibir uma imagem de fundo em uma JFrame. Note que os componentes são exibidos por cima da imagem. Antes de testar certifique-se de ter a imagem "fundo.jpg" no diretório da aplicação. */ import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("A classe JFrame"); // Define o painel que conterá os // componentes do formulário JPanel painel = new JPanel(); painel.setOpaque(false); painel.setLayout(new FlowLayout(FlowLayout.LEFT)); JButton btn = new JButton("Clique Aqui"); painel.add(btn); setGlassPane(painel); getGlassPane().setVisible(true); // Define a imagem de fundo Container c = getContentPane(); c.setLayout(new BorderLayout()); ImageIcon img = new ImageIcon("fundo.jpg"); JLabel label = new JLabel(img); c.add(label, BorderLayout.CENTER); 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) ::: HashSet |
Java HashSet - Como usar o método add() para adicionar novos elementos a um HashSet da linguagem JavaQuantidade de visualizações: 5280 vezes |
Novos elementos podem ser adicionados a um HashSet por meio do método add(), definido originalmente na interface Collection<E> e sobrescrevendo a versão herdada de AbstractCollection<E>. Este método possui a seguinte assinatura:public boolean add(E e) ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Estudos{ public static void main(String[] args) { // vamos criar uma instância da classe HashSet Set<Integer> conjunto = new HashSet<>(); // vamos tentar inserir três inteiros neste conjunto if(conjunto.add(5)){ System.out.println("Elemento inserido com sucesso."); } else{ System.out.println("O elemento não foi inserido."); } if(conjunto.add(7)){ System.out.println("Elemento inserido com sucesso."); } else{ System.out.println("O elemento não foi inserido."); } if(conjunto.add(5)){ System.out.println("Elemento inserido com sucesso."); } else{ System.out.println("O elemento não foi inserido."); } // vamos exibir os elementos inseridos com sucesso Iterator iterator = conjunto.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } Ao executar este código teremos o seguinte resultado: Elemento inserido com sucesso. Elemento inserido com sucesso. O elemento não foi inserido. 5 7 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escreva um programa em Java que usa a função log10() para informar a quantidade de dígitos em um número inteiroQuantidade de visualizações: 702 vezes |
Pergunta/Tarefa: Escreva um algorítmo em Java que peça para o usuário informar um número inteiro de qualquer tamanho, ou seja, qualquer quantidade de dígitos. Em seguida seu código deverá informar a quantidade de dígitos contida no número inteiro digitado pelo usuário. Seu programa deverá, obrigatoriamente, usar a função log10() da classe Math. Sua saída deverá ser parecida com: Informe um número inteiro de qualquer tamanho: 847 O número informado possui 3 dígitos Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar um número inteiro System.out.print("Informe um número inteiro de qualquer tamanho: "); int numero = Integer.parseInt(entrada.nextLine()); // agora vamos obter a quantidade de dígitos no // número informado int tamanho = ((int) Math.log10(numero)) + 1; // mostramos o resultado System.out.println("O número informado possui " + tamanho + " dígitos"); } } |
Java ::: Dicas & Truques ::: Data e Hora |
Java para iniciantes - Como usar a classe Date em suas aplicações JavaQuantidade de visualizações: 14077 vezes |
A classe Date pertence ao pacote java.util, e, embora muitos de seus métodos estejam em desuso (Deprecated), ainda encontraremos muito código Java que usa esta classe para trabalhar com datas e horas. Veja sua posição na hierarquia de classes Java:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- java.lang.Object java.util.Date Esta classe implementa as interfaces Serializable, Cloneable e Comparable<Date> e suas subclasses conhecidas são Date, Time, Timestamp (todas do pacote java.sql). As informações abaixo podem ser encontradas na documentação da classe Date. A classe Date representa um momento específico no tempo, com uma precisão de milisegundos. Antes do JDK 1.1, esta classe tinha duas funções adicionais. Ela permitia a interpretação de datas como valores de ano, mês, dia, hora, minuto e segundo. Também permitia a formatação e parsing de strings de datas. Infelizmente, a API para estas funções não facilitava a internacionalização. Assim, a partir do JDK 1.1, a classe Calendar deve ser usada para converter entre campos de datas e horas e a classe DateFormat deve ser usada para formatar e fazer o parsing de strings de datas. Os métodos correspondentes a estas funções estão em desuso (Deprecated) na classe Date. Embora a classe Date tenha sido projetada para refletir a hora universal coordenada (Coordinated Universal Time - UTC), ela pode não ser capaz de fazer isso corretamente, dependendo do sistema no qual a Java Virtual Machine esteja sendo executada. A grande maioria dos sistemas operacionais modernos assume que 1 dia = 24 × 60 × 60 = 86400 segundos em todos os casos. No UTC, contudo, de dois em dois anos, aproximadamente, há um segundo extra, chamado de "leap second" (a mesma idéia do ano bissexto). O leap second é sempre adicionado como o último segundo do dia e sempre nos dias 31 de dezembro ou 30 de junho. Por exemplo, o último minuto do ano de 1995 teve 61 segundos, graças ao segundo extra que foi adicionado. A maioria dos relógios dos computadores não são precisos o suficiente para refletir a distinção do leap second. Alguns padrões de computadores são definidos em termos da hora de Greenwich (Greenwich mean time - GMT), que é o equivalente ao Universal Time (UT). GMT é o nome "civil" para o padrão, UT é o nome "científico" para o mesmo padrão. A distinção entre UTC e UT é que UTC é baseado em um relógio atômico e UT é baseado em observações astronômicas, o que para todos os propósitos práticos não traz diferença significativa. Devido à rotação da terra não ser uniforme (ela desacelera ou acelera de formas complicadas), O UT nem sempre flui uniformente. Segundos extras (Leap seconds) são inseridos conforme necessário no UTC de forma a mantê-lo dentro dos 0.9 segundos do UT1, que é uma versão do UT com algumas correções aplicadas. Há outros sistemas de datas e horas também; por exemplo, a escala de tempo pelo sistema de posicionamento global baseado em satélite (satellite-based global positioning system - GPS) é sincronizado com o UTC mas não é ajustado para os segundos extras. Em todos os métodos da classe Date que aceitam ou retornam valores de ano, mês, dia, hora, minuto e segundos, as seguintes representações são usadas:
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar o modificador de acesso private em Java - Apostila Java para iniciantes - Programação Orientada a Objetos em JavaQuantidade de visualizações: 10307 vezes |
Um método ou variável declarada com o modificador de acesso private (privado) pode ser acessado somente por uma instância da classe que declara o método ou variável. Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Classe Cliente class Cliente{ private String nome = "Osmar"; } // Classe de teste public class Estudos{ public static void main(String args[]){ Cliente cliente = new Cliente(); System.out.println(cliente.nome); System.exit(0); } } Ao tentarmos compilar este código teremos a seguinte mensagem de erro: Estudos.java:10: nome has private access in Cliente System.out.println(cliente.nome); O erro já era esperado, pois sabemos que a classe Estudos não tem acesso aos membros privados da classe Cliente. Experimente alterar o modificador private por public e veja o resultado: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public String nome = "Osmar"; É importante observar que, se duas instâncias de uma classe forem criadas, uma terá acesso aos dados privados da outra, ou seja, o modificador private define quais classes (não instâncias) podem acessar determinado recurso. Além disso, saiba que classes de nível superior (Top-level) não podem ser declaradas como private. Elas podem ser no máximo de acesso de pacote (nenhum modificador). A mesma regra se aplica a interfaces. No entanto, classes e interfaces internas podem ser declaradas com o modificador private. Para finalizar, lembre-se de que sub-classes não possuem acesso à membros privados da superclasse. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios |
Exercícios Resolvidos de Java - Listando arquivos e diretórios em um diretório informado pelo usuárioQuantidade de visualizações: 2588 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa o método: public String[] list() Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.io.File; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar que o usuário informe o diretório a ser listado System.out.print("Informe o diretório a ser listado: "); String diretorioString = entrada.nextLine(); // vamos verificar se o usuário informou um diretorio válido no sistema File diretorio = new File(diretorioString); if(!diretorio.isDirectory()){ System.out.println("O caminho informado não é um diretório válido."); } else{ // é um diretório válido...vamos listar os arquivos String lista[] = diretorio.list(); System.out.println("\nRelação de Arquivos e Diretórios:\n"); for(String item : lista){ System.out.println(item); } } System.out.println("\n"); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Escreva um programa Java para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 624 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package exercicio; public class Exercicio { public static void main(String[] args) { // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; // vamos mostrar o vetor na ordem original System.out.println("Vetor na ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor int j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for(int i = 0; i < valores.length; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j int temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado System.out.println("\n\nVetor com os zeros deslocados para o final:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println(); } } Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação orientada a objetos em Java - Como usar o modificador protected em suas variáveis e métodos JavaQuantidade de visualizações: 10666 vezes |
O modificador protected pode ser aplicado às variáveis e métodos de uma classe. Membros de uma classe marcados como protected podem ser acessados por qualquer classe no mesmo pacote (package) ou por suas classes derivadas (subclasses), mesmo que estas classes estejam em pacotes diferentes. Contudo, a discussão sobre este modificador é um pouco mais profunda. Subclasses residentes em outros pacotes tem algumas limitações em relação ao acesso de variáveis e métodos marcados como protected em suas superclasses. Em resumo, uma subclasse em um pacote diferente pode sobrescrever métodos protected de suas superclasses. Além disso, instâncias destas subclasses podem acessar ou modificar variáveis protected herdadas de suas superclasses, assim como chamar os métodos protected herdados. Porém, estas instâncias não têm liberdade para efetuar estas ações em outras instâncias das mesmas subclasses. Veja um exemplo no qual mostramos como acessar variáveis marcadas como protected em uma classe a partir de sua classe derivada: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // superclasse class Pessoa{ protected String nome; public String getNome(){ return this.nome; } } // subclasse class Aluno extends Pessoa{ public Aluno(){ this.nome = "Osmar J. Silva"; } } public class Estudos{ public static void main(String args[]){ // Cria um objeto da classe Aluno Aluno a = new Aluno(); System.out.println(a.getNome()); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria, Trigonometria e Figuras Geométricas |
Exercícios Resolvidos de Java - Como calcular o volume e a área de um cilindro em Java - Geometria Espacial em JavaQuantidade de visualizações: 915 vezes |
Pergunta/Tarefa: O Cilindro ou Cilindro Circular é um sólido geométrico alongado e arredondado que possui o mesmo diâmetro ao longo de todo o comprimento. Essa figura geométrica, que faz parte dos estudos de geometria espacial, apresenta dois círculos com raios de medidas equivalentes os quais estão situados em planos paralelos. Veja a imagem a seguir: ![]() Escreva um programa Java que pede para o usuário informar o raio e a altura de um cilindro e calcule e mostre o seu volume e sua área de superfície. Os valores informados pelo usuário deverão ser do tipo double e os resultados deverão também ser do tipo double. Para auxiliar nos cálculos, a fórmula do volume do cilindo é: \[ \text{V} = \pi \cdot r^2 \cdot \text{h} \] Já a fórmula da área do cilindro é: \[ \text{A} = \text{2} \cdot \pi \cdot r \cdot (r + h) \] Sua saída deve ser parecida com: Informe o raio do cilindro: 5 Informe a altura do cilindro: 8 O volume do cilindro é: 628.3185307179587 A área do cilindro é: 408.4070449666731 Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double raio, altura, volume, area; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler o raio e a altura do cilindro System.out.print("Informe o raio do cilindro: "); raio = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a altura do cilindro: "); altura = Double.parseDouble(entrada.nextLine()); // vamos calcular o volume do cilindro volume = Math.PI * Math.pow(raio, 2) * altura; // agora vamos calcular a área do cilindro area = 2 * Math.PI * raio * (raio + altura); // e mostramos o resultado System.out.println("O volume do cilindro é: " + volume); System.out.println("A área do cilindro é: " + area); } } |
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |