Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Java ::: Classes e Componentes ::: JTable |
Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java SwingQuantidade de visualizações: 15537 vezes |
|
Nesta dica mostrarei como criar uma classe personalizada que estende a classe JLabel e implementa a interface TableCellRenderer. O objetivo é fornecer esta JLabel ao método setCellRenderer() de uma das colunas da JTable e exibir uma imagem ou foto ao lado do conteúdo da célula. Veja o resultado da figura abaixo: ![]() E aqui está 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 exibir imagens ao lado do texto da primeira coluna
TableCellRenderer tcr = new Imagem();
TableColumn column = tabela.getColumnModel().getColumn(0);
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 Imagem extends JLabel implements TableCellRenderer{
public Imagem(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column){
Icon imagem = new ImageIcon("C:\\estudos_java\\icon.gif");
// certifique-se da existencia da imagem "icon.gif" antes de executar
if(isSelected)
setBackground(table.getSelectionBackground());
else
setBackground(table.getBackground());
setIcon(imagem);
setText(value.toString());
return this;
}
public void validate() {}
public void revalidate() {}
protected void firePropertyChange(String propertyName,
Object oldValue, Object newValue) {}
public void firePropertyChange(String propertyName,
boolean oldValue, boolean newValue) {}
}
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 1154 vezes |
|
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em Python:
# função principal do programa
def main():
# vamos ler três números do usuário
a = int(input("Primeiro número: "))
b = int(input("Segundo número: "))
c = int(input("Terceiro número: "))
# os números estão em ordem crescente?
if a < b and b < c:
print("Ordem Crescente")
# os números estão em ordem decrescente?
elif a > b and b > c:
print("Ordem Decrescente")
# sem ordem definida
else:
print("Sem ordem definida")
if __name__== "__main__":
main()
|
C# ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
C# para iniciantes - Como escrever um método que possui parâmetros (e que recebe argumentos) usando a linguagem C#Quantidade de visualizações: 11940 vezes |
Parâmetros permitem que personalizemos a forma que o conjunto de instruções em um método será executado. Em C# os parâmetros de um método são separados por vírgulas e seguem a forma usual de declaração de variáveis, ou seja, o tipo de dados seguido pelo nome da variável. Veja um exemplo de método com parâmetros:
// um método que recebe dois argumentos
// e não retorna nenhum valor
static void escrever(String texto, int quant){
for(int i = 0; i < quant; i++){
Console.WriteLine(texto);
}
}
static void Main(string[] args)
{
// efetua uma chamada ao método informando o texto e
// a quantidade de vezes que ele será exibido na tela
escrever("http://www.arquivodecodigos.net", 4);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
O método escrever() possui dois parâmetros: texto e quant. Note que usamos o inteiro quant como limite para um laço for, que exibe na tela o valor da variável texto a cada iteração. Observe também a forma como este método é chamado a partir do método Main() da aplicação (fornecemos dois argumentos: o texto e a quantidade de vezes que este será exibido). Por último lembre-se de que as variáveis contidas nos parâmetros dos métodos estão disponíveis para acesso somente dentro do corpo do método, ou seja, entre as chaves { e }. |
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em C++ - Curso de C++ - Vetores e matrizes em C++Quantidade de visualizações: 11650 vezes |
Muitas vezes precisamos saber a quantidade de elementos em vetor (array). Em C++, isso pode ser feito com o uso da função sizeof(). O que fazemos é obter a quantidade de bytes contidos em todo o vetor e depois dividimos pela quantidade de bytes no primeiro elemento. Veja o código:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// declara e inicializa um array de 5 inteiros
int valores[5] = {43, 12, 8, 4, 102};
// obtém a quantidade de elementos na matriz
int quant = sizeof(valores) / sizeof(valores[0]);
// exibe o resultado
cout << "Quant. elementos : " << quant << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executarmos este código nós teremos o seguinte resultado: Quant. elementos : 5 |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar e usar métodos estáticos em suas classes Java - Programação Orientada a Objetos em Java - Java OOPQuantidade de visualizações: 13913 vezes |
Como já vimos em outras dicas desta seção, uma classe Java possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:
package estudos;
// declaração da classe Produto
public class Produto {
private String nome;
private double preco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. O método main() presente em todas as aplicações Java é um bom exemplo deste tipo de método. Métodos estáticos em Java podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: Código para Pessoa.java:
package estudos;
// classe Pessoa com duas variáveis privadas e
// um método estático
public class Pessoa {
private String nome;
private int idade;
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
return true;
}
}
Veja agora como podemos chamar o método isCPFValido() sem a necessidade da criação de uma nova instância da classe Pessoa: Código para Main.java:
package estudos;
public class Main {
public static void main(String[] args) {
// vamos efetuar uma chamada ao método isCPFValido() sem
// criar uma instância da classe Pessoa
if(Pessoa.isCPFValido("12345")){
System.out.println("CPF Válido");
}
else{
System.out.println("CPF Inválido");
}
}
}
Note que o método estático isCPFValido() da classe Pessoa foi declarado assim: public static boolean isCPFValido(String cpf); Desta forma, podemos chamá-lo a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa.isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
// vamos acessar a variável não estática nome
nome = "Osmar J. Silva";
return true;
}
vai gerar o seguinte erro de compilação: Uncompilable source code - non-static variable nome cannot be referenced from a static context. Se usarmos this.nome a mensagem de erro de compilação será: Uncompilable source code - non-static variable this cannot be referenced from a static context. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
Desafios, 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 |






