Você está aqui: Cards de |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Manipulação de imagens em Java - Como converter uma imagem JPG colorida para uma imagem na escala cinza (gray scale)Quantidade de visualizações: 12281 vezes |
Uma das formas mais comuns de se converter uma imagem colorida para uma imagem na escala cinza (grayscale) é desenhar a imagem colorida em um BufferedImage do tipo TYPE_BYTE_GRAY. Veja o resultado na imagem abaixo:![]() E agora o código completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
public class Estudos extends JFrame{
private BufferedImage imagem;
private BufferedImage imagemCinza;
AreaImagem areaImagem;
public Estudos(){
super("Estudos Java");
Container c = getContentPane();
c.setLayout(new BorderLayout());
JButton btn = new JButton("Carregar Imagem");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File arquivo = fc.getSelectedFile();
imagem = null;
try{
imagem = ImageIO.read(arquivo);
}
catch(IOException exc){
JOptionPane.showMessageDialog(null,
"Erro ao carregar a imagem: " +
exc.getMessage());
}
if(imagem != null){
areaImagem.imagem = imagem;
areaImagem.repaint();
}
}
}
}
);
JButton btn2 =
new JButton("Converter Escala Cinza");
btn2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
converterEscalaCinza();
}
}
);
JPanel painel = new JPanel();
painel.setLayout(new FlowLayout());
painel.add(btn);
painel.add(btn2);
c.add(painel, BorderLayout.SOUTH);
// Cria a área de exibição da imagem
areaImagem = new AreaImagem();
c.add(areaImagem, BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
}
public void converterEscalaCinza(){
imagemCinza = new BufferedImage(
imagem.getWidth(), imagem.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics g = imagemCinza.getGraphics();
g.drawImage(imagem, 0, 0, null);
g.dispose();
areaImagem.imagem = imagemCinza;
areaImagem.repaint();
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
public BufferedImage imagem;
public void paintComponent(Graphics g){
super.paintComponent(g);
// desenha a imagem no JPanel
g.drawImage(imagem, 0, 0, this);
}
}
|
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como somar dias a uma data em JavaScript usando uma função personalizada adicionar_dias() que retorna um objeto DateQuantidade de visualizações: 13720 vezes |
|
Nesta dica mostrarei como podemos escrever uma função JavaScript que permite adicionar dias a uma data recebida como argumento e retorna um novo objeto Date. Como pequenas modificações esta função pode ser usada também para subtrair dias da data. Veja a página HTML completa para o exemplo:
<!doctype html>
<html>
<head>
<title>Data e hora em JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função que recebe um objeto Date e uma quantidade
// de dias e soma esses dias ao Date recebido e
// e retorna um novo objeto Date
function adicionar_dias(data, dias){
return new Date(data.getTime() + (dias * 24 * 60
* 60 * 1000));
}
// testa a função
var hoje = new Date();
document.write("Hoje é " + hoje.toLocaleDateString() + "<br>");
// vamos adicionar 5 dias ao objeto Date
var data_futura = adicionar_dias(hoje, 5);
document.write("Daqui 5 dias será: " +
data_futura.toLocaleDateString());
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: Hoje é 06/02/2023 Daqui 5 dias será: 11/02/2023 |
Java ::: Coleções (Collections) ::: HashMap |
Como adicionar novos mapeamentos chave-valor a um HashMap do Java usando o método put()Quantidade de visualizações: 9768 vezes |
Novos mapeamentos chave-valor são adicionados a um HashMap da linguagem Java usando-se o método put(). Veja sua assinatura:public V put(K key, V value) Note que este método recebe a chave e o valor a ser inserido e retorna um objeto do mesmo tipo daquele fornecido no segundo argumento. Este retorno é muito útil para sabermos se o novo valor não sobrepôs um valor já existente. Se o retorno for null, o novo valor foi inserido. Caso contrário o retorno será o valor existente antes da sobreposição. Apenas tenha cuidado com valores null existentes como chaves ou valores. Nestes casos o retorno do método put não ajudará em nada. Veja um exemplo do uso do método put():
package estudos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
// vamos criar uma instância de HashMap
HashMap<Integer, String> clientes = new HashMap<Integer, String>();
// vamos adicionar três chaves e seus valores
clientes.put(new Integer(1), "Osmar J. Silva");
clientes.put(new Integer(2), "Salvador Miranda de Andrade");
clientes.put(new Integer(3), "Marcos da Costa Santos");
// é possível também referenciar o valor adicionado
// ao HashMap, uma vez que este é o retorno do métoto put()
String nome = clientes.put(new Integer(2), "Carlos");
if(nome == null){
System.out.println("Novo valor inserido com sucesso");
}
else{
System.out.println("Valor já existia. Houve sopreposição");
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Valor já existia. Houve sopreposição |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar mais texto a um JTextArea usando o método append()Quantidade de visualizações: 4 vezes |
|
Nesta dica mostrarei como é possível usar o método append() da classe JTextArea para adicionar mais conteúdo a esse controle. Esta é uma técnica muito importante no desenvolvimento de aplicações Java Swing. Segue um exemplo completo (note que fiz toda a aplicação Java Swing na mão mesmo, ou seja, não usei o editor visual do NetBeans ou semelhantes):
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame {
JTextArea textArea;
JTextField texto;
JButton btn;
public Estudos() {
super("Como adicionar texto a um JTextArea");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(10, 20);
texto = new JTextField(10);
btn = new JButton("Adicionar Texto");
btn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.append(texto.getText());
}
}
);
c.add(textArea);
c.add(texto);
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]) {
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Veja que neste exemplo, mais conteúdo é adicionado ao controle JTextArea sem provocar uma quebra de linha. Em outras dicas e truques dessa seção você aprenderá como isso pode ser feito. |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith()Quantidade de visualizações: 2363 vezes |
|
O método startsWith() da linguagem JavaScript foi adicionado ao objeto String na revisão ECMAScript 2015, ou ES6, também chamado de ECMAScript 6. Este método é chamado diretamente em uma variável do tipo string e retorna true se a palavra, frase ou texto começar com uma substring específica e false em caso contrário. Veja um exemplo no qual verificamos se uma frase começa com a palavra "JavaScript":
<script type="text/javascript">
var frase = "JavaScript é uma das melhores linguagens";
if(frase.startsWith("JavaScript")){
document.writeln("A frase começa com a palavra JavaScript");
}
else{
document.writeln("A frase não começa com a palavra JavaScript");
}
</script>
Ao executarmos este código JavaScript nós teremos o seguinte resultado: A frase começa com a palavra JavaScript É importante ter em mente que a função startsWith() diferente letras maiúsculas de letras minúsculas. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







