Você está aqui: Cards de |
||
|
||
|
|
||
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: 11042 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 ::: Java Swing - Componentes Visuais ::: JList |
Como retornar os valores selecionados em uma JList de seleção múltipla do Java Swing usando o método getSelectedValues()Quantidade de visualizações: 9999 vezes |
|
Nesta dica mostrarei como podemos usar o método getSelectedValues() da classe JList do Java Swing para obter e retornar um vetor (array) contendo os valores selecionados em uma lista de múltipla seleção, ou seja, uma JList que permite a seleção de mais de um elemento por vez. O método getSelectedValues() retorna um vetor de Object. Note também o uso da constante ListSelectionModel.MULTIPLE_INTERVAL_SELECTION fornecida para o método setSelectionMode() para definir a forma de seleção da JList. Veja o código Java Swing completo para o exemplo:
package estudos;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JList lista;
public Estudos() {
super("A classe JList");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
// Cria os itens da lista
String nomes[] = {"Carlos", "Marcelo", "Fabiana",
"Carolina", "Osmar"};
// Cria a JList
lista = new JList(nomes);
// Define a seleção múltipla para a lista
lista.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
// Um botão que permite obter os valores selecionados
JButton btn = new JButton("Obter valores selecionados");
btn.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
Object[] valores = lista.getSelectedValues();
String res = "Valores selecionados:\n";
for(int i = 0; i < valores.length; i++)
res += valores[i].toString() + "\n";
JOptionPane.showMessageDialog(null, res);
}
}
);
// Adiciona a lista à janela
c.add(new JScrollPane(lista));
// Adiciona o botão à janela
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Mais de um valor pode ser marcado na JList mantendo a tecla Ctrl ou Shift enquanto se clica nos valores desejados. |
Java ::: Dicas & Truques ::: Gráficos |
Como desenhar em um JComponent do Java Swing (JLabel, JButton, JPanel, etc) usando o método paintComponent()Quantidade de visualizações: 10451 vezes |
|
A classe JComponent possui um método chamado paintComponent(Graphics g) que recebe um objeto da classe Graphics que pode ser usado para desenhar na superfície do componente. Desta forma, qualquer componente que herda de JComponent pode ser usado para esta finalidade. Para demonstrar como isso é feito, veja um trecho de código no qual desenhamos uma linha em um JLabel e o anexamos à janela do aplicativo. Observe a criação de uma classe personalizada que herda de JLabel:
import java.awt.*;
import javax.swing.*;
public class Estudos extends JFrame{
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
// Cria o JLabel
MinhaLabel label = new MinhaLabel();
c.add(label);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
}
// classe personalizada que permite desenhar
class MinhaLabel extends JLabel{
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawLine(0, 0, 200, 200);
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Declarar e construir uma matriz de 10 int, pedir ao usuário para informar os valores dos elementos, mostrar a média dos valores informados e a quantidade de valores acima da médiaQuantidade de visualizações: 14360 vezes |
|
Pergunta/Tarefa: Escreva um programa Java console ou GUI que declara e constrói uma matriz de 10 inteiros. Em seguida peça ao usuário para informar os 10 valores e armazene-os na matriz. Finalmente obtenha a média aritmética dos valores informados e mostre quantos valores estão acima da média. Seu programa deverá exibir a seguinte saída (no caso de uma aplicação Console): Informe o 1º valor: 4 Informe o 2º valor: 12 Informe o 3º valor: 9 Informe o 4º valor: 6 Informe o 5º valor: 4 Informe o 6º valor: 3 Informe o 7º valor: 7 Informe o 8º valor: 2 Informe o 9º valor: 3 Informe o 10º valor: 1 A média dos valores é: 5.0 Quantidade de valores acima da média: 4 Resposta/Solução: Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// vamos declarar e instancia um objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos declarar e construir uma matriz de 10 ints
int valores[] = new int[10];
double media; // média dos valores
int soma = 0; // soma dos valores lidos
int quantAcimaMedia = 0; // quantidade de valores acima da média
// vamos solicitar ao usuário que informe os 10 valores inteiros
// e vamos armazená-los na matriz
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o " + (i + 1) + "º valor: ");
int valor = Integer.parseInt(entrada.nextLine());
valores[i] = valor;
// vamos adicionar este valor à soma
soma = soma + valor;
}
// vamos obter a média dos valores lidos
media = (soma / valores.length);
// agora precisamos obter a quantidade de valores acima da média
for(int i = 0; i < valores.length; i++){
if(valores[i] > media){
quantAcimaMedia++;
}
}
// vamos exibir os resultados
System.out.println("A média dos valores é: " + media);
System.out.println("Quantidade de valores acima da média: " +
quantAcimaMedia);
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como calcular e exibir os 50 primeiros números primos em JavaQuantidade de visualizações: 11292 vezes |
|
Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa (algorítmo) Java que usa um laço for, while ou do...while para calcular e exibir os 50 primeiros números primos. Sua saída deverá ser parecida com:
50 primeiros numeros primos:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
Veja a resolução comentada deste exercício usando Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
int quantidade = 50; // quantidade de números primos
int contador = 0; // quantidade de números primos encontrados
int numero = 0; // inteiro inicial
// Lembre-se! O número 1 não é primo
System.out.println(quantidade + " primeiros numeros primos:\n");
// laço while será executado até encontrar os 50 primeiros números primos
while(contador < quantidade){
boolean primo = true;
// se o valor de i for 7, a variável j do laço contará
// de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o
// módulo de 7 por qualquer um dos valores neste intervalo
// for igual a 0, então o número não é primo
for(int j = 2; j <= (numero / 2); j++){
if(numero % j == 0){
primo = false; // não é primo
break;
}
}
if((primo) && (numero > 1)){
System.out.printf("%6d", numero);
contador++; // encontramos um número primo
if(contador % 10 == 0){
System.out.println();
}
}
numero++;
}
}
}
|
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 |




