Você está aqui: Cards de Cards de Hidrologia |
||
|
||
|
|
||
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valoresQuantidade de visualizações: 1 vezes |
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo:![]() Veja agora o código Java Swing 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 simples");
// colunas da tabela
String[] colunas = {"Nome", "Idade", "Sexo"};
// conteúdo da tabela
Object[][] conteudo = {
{"Osmar J. Silva", "32", "Masculino"},
{"Maria Clara Gomes", "19", "Feminino"},
{"Fernando Gomes", "15", "Masculino"},
{"Carlos Vieira", "40", "Masculino"}
};
// constrói a tabela
JTable tabela = new JTable(conteudo, colunas);
// quero colorir o fundo das células da segunda coluna
// se o valor encontrado for menor que 20
TableCellRenderer tcr = new Colorir();
TableColumn column =
tabela.getColumnModel().getColumn(1);
column.setCellRenderer(tcr);
tabela.setPreferredScrollableViewportSize(new
Dimension(350, 50));
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);
}
}
class Colorir extends JLabel implements TableCellRenderer{
public Colorir(){
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(
JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column){
if(Integer.parseInt(value.toString()) < 20){
setBackground(Color.YELLOW);
}
else{
setBackground(table.getBackground());
}
setText(value.toString());
return this;
}
@Override
public void validate() {}
@Override
public void revalidate() {}
@Override
protected void firePropertyChange(String propertyName,
Object oldValue, Object newValue) {}
@Override
public void firePropertyChange(String propertyName,
boolean oldValue, boolean newValue) {}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Escreva um método chamado inverter() que recebe um número inteiro e retorna este mesmo número invertidoQuantidade de visualizações: 7570 vezes |
|
Pergunta/Tarefa: Escreva um método Java chamado inverter() que recebe um número inteiro e retorna este mesmo número invertido. Este método deverá ter a seguinte assinatura:
public static int inverter(int numero){
// sua implementação aqui
}
ATENÇÃO: Para a resolução deste exercício é permitido usar apenas os operadores aritméticos. Sua saída deverá ser parecida com: Informe um número inteiro: 487 O valor invertido é: 784 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos pedir ao usuário que informe um número inteiro
System.out.print("Informe um número inteiro: ");
int numero = Integer.parseInt(entrada.nextLine());
// fazer efetuar uma chamada ao método inverter() e obter o valor invertido
int invertido = inverter(numero);
// e exibir o resultado
System.out.println("O valor invertido é: " + invertido);
}
// método estático que recebe um número inteiro e o devolve invertido
public static int inverter(int numero){
int resultado = 0; // guarda o resultado da inversão
// enquanto número for diferente de 0
while(numero != 0){
// obtém resto da divisão de número por 10
int resto = numero % 10;
// resultado recebe ele mesmo multiplicado por 10 mais o resto
resultado = resultado * 10 + resto;
// finalmente número recebe ele mesmo dividido por 10
numero = numero / 10;
}
return resultado; // retorna o resultado
}
}
|
Ruby ::: Dicas & Truques ::: Hashes (Arrays Associativas) |
Como criar um hash em Ruby - Criação e uso de arrays associativos na linguagem RubyQuantidade de visualizações: 9497 vezes |
|
Os hashes (também chamados de arrays associativas, mapas ou dicionários) são parecidos com arrays no sentido em que são coleções indexadas de referências a objetos. Contudo, enquanto podemos indexar arrays usando inteiros, hashes podem ser indexados usando-se qualquer tipo de dados: strings, expressões regulares, inteiros, e assim por diante. Quando guardamos um valor em um hash, estamos na verdade guardando dois objetos: o índice (geralmente chamado de chave) e o valor. Os valores em um hash Ruby podem ser de qualquer tipo. Hashes em Ruby podem ser criados de duas formas: usando a notação literal ou criando-se um objeto da classe Hash. Veja como criamos um hash usando notação literal:
# cria um hash de estados e capitais
capitais = {'Goiás' => 'Goiânia', 'Mato Grosso' => 'Cuiabá',
'Paraná' => 'Curitiba'}
# exibe a capital correspondente ao estado de Mato Grosso
puts capitais['Mato Grosso']
Veja como usamos os nomes dos estados como chaves e os nomes das capitais como valores para cada um dos elementos do hash. Veja agora como criar este mesmo hash por meio da criação de um objeto da classe Hash: # cria um hash de estados e capitais capitais = Hash.new capitais['Goiás'] = 'Goiânia' capitais['Mato Grosso'] = 'Cuiabá' capitais['Paraná'] = 'Curitiba' # exibe a capital correspondente ao estado de Mato Grosso puts capitais['Mato Grosso'] |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando JavaQuantidade de visualizações: 2735 vezes |
|
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar. Código para No.java:
package arvore_binaria;
public class No {
private int valor; // valor armazenado no nó
private No esquerdo; // filho esquerdo
private No direito; // filho direito
// construtor do nó
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
}
Código para ArvoreBinariaBusca.java:
package arvore_binaria;
public class ArvoreBinariaBusca {
private No raiz; // referência para a raiz da árvore
// método usado para inserir um novo nó na árvore
// retorna true se o nó for inserido com sucesso e false
// se o elemento
// não puder ser inserido (no caso de já existir um
// elemento igual)
public boolean inserir(int valor){
// a árvore ainda está vazia?
if(raiz == null){
// vamos criar o primeiro nó e definí-lo como a raiz da árvore
raiz = new No(valor); // cria um novo nó
}
else{
// localiza o nó pai do novo nó
No pai = null;
No noAtual = raiz; // começa a busca pela raiz
// enquanto o nó atual for diferente de null
while(noAtual != null){
// o valor sendo inserido é menor que o nó atual?
if(valor < noAtual.getValor()) {
pai = noAtual;
// vamos inserir do lado esquerdo
noAtual = noAtual.getEsquerdo();
}
// o valor sendo inserido é maior que o nó atual
else if(valor > noAtual.getValor()){
pai = noAtual;
// vamos inserir do lado direito
noAtual = noAtual.getDireito();
}
else{
return false; // um nó com este valor foi encontrado
}
}
// cria o novo nó e o adiciona como filho do nó pai
if(valor < pai.getValor()){
pai.setEsquerdo(new No(valor));
}
else{
pai.setDireito(new No(valor));
}
}
return true; // retorna true para indicar que o novo nó foi inserido
}
// método que permite pesquisar na árvore binária de busca
public No pesquisar(int valor){
return pesquisar(raiz, valor); // chama a versão recursiva do método
}
// sobrecarga do método pesquisar que recebe dois
// parâmetros (esta é a versão recursiva do método)
private No pesquisar(No noAtual, int valor){
// o valor pesquisado não foi encontrado....vamos retornar null
if(noAtual == null){
return null;
}
// o valor pesquisado foi encontrado?
if(valor == noAtual.getValor()){
return noAtual; // retorna o nó atual
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da esquerda
else if(valor < noAtual.getValor()){
return pesquisar(noAtual.getEsquerdo(), valor);
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da direita
else{
return pesquisar(noAtual.getDireito(), valor);
}
}
}
E finalmente o código para a classe principal:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 5 valores na árvore
for(int i = 0; i < 5; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos pesquisar um valor na árvore
System.out.print("\nInforme o valor a ser pesquisado: ");
int valorPesquisa = Integer.parseInt(entrada.nextLine());
// obtém um objeto da classe NoArvore a partir do
// método pesquisar() da classe ArvoreBinariaBusca
No res = arvore.pesquisar(valorPesquisa);
// o valor foi encontrado?
if(res != null){
System.out.println("O valor foi encontrado na árvore");
}
else{
System.out.println("O valor não foi encontrado na árvore");
}
System.out.println("\n");
}
}
|
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto StringQuantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como usar a função toLowerCase() do JavaScript para transformar todos os caracteres de uma palavra, frase ou texto para letras minúsculas. Esta função faz parte do objeto String. Veja um página HTML completa demonstrando o exemplo:
<!doctype html>
<html>
<head>
<title>Strings em JavaScript</title>
</head>
<body>
<script type="text/javascript">
var frase = "Veja Esta Frase.";
document.write("String original: " +
frase + "<br>");
// agora vamos transformar todos os caracteres
// da string para letras minúsculas
frase = frase.toLowerCase();
document.write("Em letras minúsculas: " +
frase + "<br>");
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: String original: Veja Esta Frase. Em letras minúsculas: veja esta frase. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






