Java como aplicativo

Trabalhando com formulários

Formulário é um documento estruturado com espaço reservado para a entrada de informaçõese, em geral, contendo alguns códigos especiais. Em algumas aplicações (especialmente banco de dados), formulário é uma caixa ou janela ou outro elemento de apresentação independente com áreas predefinidas para a entrada ou a alteração de informações. Um formulário é um "filtro" visual para os dados básicos que estão sendo apresentados, em geral oferecendo as vantagens de uma melhor organização de dados e maior facilidade de visualização.

Para sistemas via desktop tais como: o Java, Visual Basic e o Delphi. Formulário é uma caixa quadrada ou retangular com as seguintes propriedades:

(1) Nome do Formulário

(2) Barra de Título

(3) Área de Trabalho

(4) Largura do Formulário

(5) Altura do Formulário

(6) Minimizar

(7) Maximinizar / Restaurar e

(8) Fechar

Veja a foto:

As propriedades do Java mais usadas do formulário são:

Propriedades Código Definição
Importantes
Nome do programa JavaTeste Define o nome do programa e do formulário. Para mudar o nome do programa é só substituir o JavaTeste por um outro nome, no programa abaixo ele aparece 03 (TRÊS) vezes.
Texto na barra de título super("Formulario"); Escreve um texto na barra de título
Largura this.setSize(largura, altura); Define a largura do formulário
Altura this.setSize(largura, altura); Define a altura do formulário
Esquerda this.setLocation(esquerda, topo); Posiciona o formulário no eixo x da esquerda para a direita
Topo this.setLocation(esquerda, topo); Posiciona o formulário no eixo y do topo para a base
Visível this.setVisible(true); Deixa a janela visível
Insere um ícone no formulário // Usa o formato GIF e JPG. Sempre é bom mudar o ícone do programa Java.

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);
Fechar a Janela // Com este comando é possível fechar a janela sem dar erros

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});
Outros
Tamanho Fixo this.setResizable(false); Deixa a janela do formulário com tamanho fixo, ou seja, sem bordas
Centraliza o formulário // Centraliza o formulário no centro da tela

Dimension display = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((display.width - this.getSize().width)/2 ,
(display.height - this.getSize().height)/2);
Maximiza this.setExtendedState( JFrame.MAXIMIZED_BOTH ); Maximiniza a janela
Minimiza this.setExtendedState( JFrame.ICONIFIED ); Minimiza a janela
Restaura this.setExtendedState( JFrame.NORMAL ); Restaura a janela

Layout

O Java tem vários tipos de layouts compicados difíceis de se entender, nós iremos estudar somente um que é:

Container componente = this.getContentPane();

componente.setLayout(null);

Para inserir por exemplo um botão, um rótulo ou uma caixa de texto use esta sintaxe:

componente.setBounds(esquerda, topo, largura, altura);

ccomponente.add(nome_do_objeto);

Este tipo de layout é parecido com o Delphi e o Visual Basic, programas fáceis de se criar layout.

O primeiro programa

Para começar vamais analisar um exemplo bem simples - abra um editor de texto comum e digite o código que está escrito abaixo:

Esqueleto:

Para inserir um objeto do formulário é só inserir este objeto no INICIO e FIM que estão destacados. São três cantos.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   // ====================
   // INICIO
   // ====================

   // ********************
   // Aqui você insere um objeto do formulário
   // ********************
   private JButton botao_1;
   // ====================
   // FIM
   // ====================

      public JavaTeste() {
      // Formulário

 

// Barra de título super("Formulario"); // Largura e altura do Formulário this.setSize(400,200); // setSize(largura, altura) // posição da janela: esquerda e topo this.setLocation(50, 100); //setLocation(esquerda, topo)

 

// Layout Container ct = this.getContentPane(); ct.setLayout(null); // ==================== // INICIO // ==================== // ******************** // Aqui você insere o objeto do formulário // ******************** botao_1 = new JButton("Botão 1"); // ******************** // Aqui você coloca as coordenadas x, y, larg. e alt. do objeto do formulário // ******************** botao_1.setBounds(50,10,150,25); // objeto.setBounds(esquerda, topo, largura, altura) // ******************** // Aqui você adiciona o objeto ao formulário // ******************** ct.add(botao_1); //Layout // ==================== // FIM // ==================== // Muda o ícone do Formulário Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); setIconImage(Icone); // Deixa a janela visível this.setVisible(true); // ==================== // INICIO // ==================== // ******************** // Aqui você coloca o evento do formulário // ******************** botao_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "Bem Vindo!"); }}); // ==================== // FIM // ==================== // Fechando o programa this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }}); } public static void main(String[] args) { new JavaTeste(); } }

Medidas

Largura e Altura do Formulário:
Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JTextArea area_texto;

      public JavaTeste() {

      super("Formulario");
      this.setSize(200+20,200+38);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

area_texto = new JTextArea("Dimensões");

area_texto.setLineWrap(true);

JScrollPane barra_de_rolagem = new JScrollPane(area_texto); 

barra_de_rolagem.setBounds(0,0,200,200);

ct.add(barra_de_rolagem);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      // Deixa a janela visível
      this.setVisible(true);

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Largura e Altura dos objetos:
Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JTextField texto1;
private JTextField campo1;
private JTextField texto2;
private JTextField campo2;

      public JavaTeste() {

      super("Formulario");
      this.setSize(150+1+150+20,20+1+20+38);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);


texto1 = new JTextField("Dimensões");
texto1.setBounds(0,0,150,20);
ct.add(texto1);
campo1 = new JTextField("Digite seu texto");
campo1.setBounds(150+1,0,150,20);
ct.add(campo1);
texto2 = new JTextField("Dimensões");
texto2.setBounds(0,20+1,150,20);
ct.add(texto2);
campo2 = new JTextField("Digite seu texto");
campo2.setBounds(150+1,20+1,150,20);
ct.add(campo2);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      // Deixa a janela visível
      this.setVisible(true);

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JButton)

Botão de comando

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JButton Nome_do_botao;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

Nome_do_botao = new JButton("Clique aqui");

Nome_do_botao.setBounds(50,10,150,25);

ct.add(Nome_do_botao);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

Nome_do_botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(Nome_do_botao.getText().equals("<html><font color='blue'>Teste 2</font></html>")){
Nome_do_botao.setText("<html><font color='red'>Teste 1</font></html>");
} else {
Nome_do_botao.setText("<html><font color='blue'>Teste 2</font></html>");
}
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Para inserir uma imagem no botão insira o código abaixo:

Exemplo:
Icon icone = new ImageIcon("imagem.gif");
botao_1 = new JButton("Botão 1", icone);

Seus parâmetros são:

Código Parâmetros Definição
Nome_do_botao = new JButton("Clique aqui"); Nome_do_botao Define o nome do botão de comando
Nome_do_botao = new JButton("Clique aqui"); "Clique Aqui" Imprime um texto no botão
Nome_do_botao.setBounds(50,10,150,Altura);   Altura = 25

Botão de comando

Precionando o botão com um Enter

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JLabel texto;
private JButton botao1;
private JButton botao2;
private JButton botao3;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

texto = new JLabel("Teste");
texto.setBounds(0,0,150,25);
ct.add(texto);

botao1 = new JButton("Clique aqui (1)");
botao1.setBounds(0,26,150,25);
ct.add(botao1);

botao2 = new JButton("Clique aqui (2)");
botao2.setBounds(151,26,150,25);
ct.add(botao2);

botao3 = new JButton("Clique aqui (3)");
botao3.setBounds(302,26,150,25);
ct.add(botao3);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
setIconImage(Icone);

this.setVisible(true);

botao1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent tecla) {
int codigo = tecla.getKeyCode();
if(codigo == KeyEvent.VK_ENTER){
getTexto(1);
}
}});

botao2.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent tecla) {
int codigo = tecla.getKeyCode();
if(codigo == KeyEvent.VK_ENTER){
getTexto(2);
}
}});

botao3.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent tecla) {
int codigo = tecla.getKeyCode();
if(codigo == KeyEvent.VK_ENTER){
getTexto(3);
}
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
public void getTexto(int variavel){
texto.setText("Teste: ("+variavel+")");
}
}

(JTextField)

Caixa de texto

Este é o comando mais usado para digitação de um campo de texto.

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JTextField Nome_do_campo;
private JLabel texto;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

Nome_do_campo = new JTextField("Digite seu texto");

Nome_do_campo.setBounds(50,10,150,20);

ct.add(Nome_do_campo);

texto = new JLabel("");
texto.setBounds(50,31,150,50);
ct.add(texto);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

Nome_do_campo.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
texto.setText("<html>" + Nome_do_campo.getText() + "</html>");
}});
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Seus parâmetros são:

Código Parâmetros Definição
Nome_do_campo = new JTextField("Digite seu texto"); Nome_do_campo Define o nome da caixa de texto
Nome_do_campo = new JTextField("Digite seu texto"); "Digite seu texto" Escreve um valor na caixa de text
Nome_do_campo.setBounds(50,10,150,Altura);   Altura = 20

(JFormattedTextField)

Arquivo: JavaTeste.java
/*
    Dicas:
    # => Usa número válido, usa Character.isDigit
    ' => Caractere de escape, usado para escape de qualquer caractere de formato especial
    U =>Qualquer caractere(Character.isLetter). Todas as letras minúsculas são transformadas em maiúsculas.
    L => Qualquer caractere(Character.isLetter). Todas as letras maiúsculas são transformadas em minúsculas.
    A => Qualquer caractere ou digito (Character.isLetter ou Character.isDigit)
    ? => Qualquer caractere
    * => Qualquer coisa
    H => Qualquer caractere hexadecima(0-9, a-f ou A-F)
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.text.MaskFormatter;  
import java.text.ParseException; 

public class JavaTeste extends JFrame {

private JFormattedTextField telefone;//campo para telefone  
   
private JFormattedTextField data;//campo para data  

private JFormattedTextField maiusculo; // campo para maiúsculo

private JFormattedTextField minusculo; // campo para minúsculo

private JFormattedTextField numero; // campo para numero

private MaskFormatter ftmTelefone;//Atributo formatador para telefone  
      
private MaskFormatter ftmData;//Atributo formatador para data  

private MaskFormatter ftmMaiusculo; // Atributo formador de Maiúsculo

private MaskFormatter ftmMinusculo; // Atributo formador de Minusculo

private MaskFormatter ftmNumero; // Atributo formador de Numero

      public JavaTeste() {

      super("Formulario");
      this.setSize(300,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
       try{ 
       ftmTelefone = new MaskFormatter("####-####");  
       ftmData = new MaskFormatter("##/##/####");
	   ftmMaiusculo = new MaskFormatter("UUUUUUUU");
	   ftmMinusculo = new MaskFormatter("LLLLLLLL");
	   ftmNumero = new MaskFormatter("********"); 
       } catch (Exception pe) { } 

       telefone = new JFormattedTextField();
       data = new JFormattedTextField();  
       maiusculo = new JFormattedTextField();
       minusculo = new JFormattedTextField();
       numero = new JFormattedTextField();
	   
       ftmTelefone.setValidCharacters("0123456789");  
       ftmData.setValidCharacters("0123456789");
       ftmNumero.setValidCharacters(",0123456789");

       telefone.setColumns(6);
	   ftmTelefone.install(telefone);
	   
       data.setColumns(6);
       ftmData.install(data);
	   
	   maiusculo.setColumns(0);
	   ftmMaiusculo.install(maiusculo);
	   
	   minusculo.setColumns(1);
	   ftmMinusculo.install(minusculo);


	   numero.setColumns(0);
	   ftmNumero.install(numero);
	   
	   telefone.setBounds(100,15,150,20);
	   data.setBounds(100,36,150,20);
	   maiusculo.setBounds(100,57,150,20);
	   minusculo.setBounds(100,78,150,20);
	   numero.setBounds(100,99,150,20);

       ct.add(telefone);  
       ct.add(data);
	   ct.add(maiusculo);
	   ct.add(minusculo);
	   ct.add(numero);

JLabel labTelefone = new JLabel("Telefone");
JLabel labData = new JLabel("Data");
JLabel labMaiusculo = new JLabel("Maiusculo");
JLabel labMinusculo = new JLabel("Minusculo");
JLabel labNumero = new JLabel("Numero");

labTelefone.setBounds(0,15,100,20);
labData.setBounds(0,36,100,20);
labMaiusculo.setBounds(0,57,100,20);
labMinusculo.setBounds(0,78,100,20);
labNumero.setBounds(0,99,100,20);
ct.add(labTelefone);
ct.add(labData);
ct.add(labMaiusculo);
ct.add(labMinusculo);
ct.add(labNumero);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JPasswordField)

Senha (password)

Esse comando é idêntico ao comando caixa de texto. Sua única diferença é que, no lugar dos caracteres digitados aparecem asteriscos. Como o próprio nome indica, ele é ideal para a visualização do texto que está sendo digitados.

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JPasswordField senha;
   private JButton botao;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      senha = new JPasswordField("12345");

      senha.setBounds(50,10,150,20);

      ct.add(senha);

      botao = new JButton("Entrar");
      botao.setBounds(50,31,100,25);
      ct.add(botao);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (new String (senha.getPassword()).equals("MinhaSenha"))
{JOptionPane.showMessageDialog(null, "Senha válida.");}
 else
{JOptionPane.showMessageDialog(null, "Senha Incorreta.");}
}});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Seus parâmetros são:

Código Parâmetros Definição
senha = new JPasswordField("12345"); senha Define o nome do password
senha = new JPasswordField("12345"); "12345" Escreve um valor no password
senha.setBounds(50,10,150,Altura);   Altura = 20

(JLabel)

Rótulo (Label)

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JLabel texto;
private JButton botao;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

texto = new JLabel("Este é o meu primeiro programa");

texto.setBounds(50,10,200,20);

ct.add(texto);

botao = new JButton("Teste");
botao.setBounds(50,31,100,25);
ct.add(botao);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(texto.getText().equals("<html><font color='blue'>Teste 2</font></html>")){
texto.setText("<html><font color='red'>Teste 1</font></html>");
} else {
texto.setText("<html><font color='blue'>Teste 2</font></html>");
}
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Seus parâmetros são:

Código Parâmetros Definição
texto = new JLabel("Este é o meu primeiro programa"); texto Define o nome rótulo
texto = new JLabel("Este é o meu primeiro programa"); "Este é o meu primeiro programa" Escreve o texto no formulário
texto.setBounds(50,10,200,Altura);   Altura = 20

Texto de Ajuda

(setToolTipText)

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JLabel label;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

label = new JLabel("<html><div style='background-color:#CCFF00'>Passe o mouse aqui</div></html>");
label.setToolTipText("Texto de Ajuda");
label.setBounds(50,10,150,20);

ct.add(label);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

(JTextArea)

5) Área de texto

Define uma caixa de digitação onde o usuário pode digitar livremente um texto com várias linhas.

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JTextArea area_texto;
private JLabel texto;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

area_texto = new JTextArea("Digite seus comentários");

// define a quebra de linha automática
area_texto.setLineWrap(true);

JScrollPane barra_de_rolagem = new JScrollPane(area_texto);

barra_de_rolagem.setBounds(50,10,150,100);

ct.add(barra_de_rolagem);

texto = new JLabel("");
texto.setBounds(201,10,150,50);
ct.add(texto);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

area_texto.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
texto.setText("<html>" + area_texto.getText() + "</html>");
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Seus parâmetros são:

Código Parâmetros Definição
area_texto = new JTextArea("Digite seus comentários"); area_texto Define o nome da área de texto
area_texto = new JTextArea("Digite seus comentários"); "Digite seus comentários" Escreve o texto na área de Texto
barra_de_rolagem.setBounds(50,10,Largura,Altura);   Altura= variável , Largura = variável
area_texto.setLineWrap(true); setLineWrap

Executa a quebra de linha

  • true para quebra de linha e
  • false para não quebrar a linha
JScrollPane barra_de_rolagem = new JScrollPane(area_texto); JScrollPane Coloca uma barra de rolagem na área de texto

(ButtonGroup)

(JRadioButton)

Botão de opção

Os botões de opção indicam uma lista de ítens, dos quais apenas um pode ser escolhido. Se um dos botões de opção for selecionado, todos os demais serão desativados.

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private ButtonGroup cor;
private JRadioButton botao_1;
private JRadioButton botao_2;
private JRadioButton botao_3;
      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      cor = new ButtonGroup();

      botao_1 = new JRadioButton("Verde");
	  cor.add(botao_1);
      botao_1.setBounds(50,10,150,20);

      ct.add(botao_1);

      botao_2 = new JRadioButton("Amarelo");
	  cor.add(botao_2);
	  botao_2.setSelected(true);
      botao_2.setBounds(50,30,150,20);

	  ct.add(botao_2);

      botao_3 = new JRadioButton("Azul");
	  cor.add(botao_3);
      botao_3.setBounds(50,50,150,20);

      ct.add(botao_3);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

botao_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(botao_1.isSelected())
{botao = " botao_1";}
if(botao_2.isSelected())
{botao = " botao_2";}
if(botao_3.isSelected())
{botao = " botao_3";}
JOptionPane.showMessageDialog(null, ((JRadioButton) e.getSource()).getText() + botao);
}});

botao_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(botao_1.isSelected())
{botao = " botao_1";}
if(botao_2.isSelected())
{botao = " botao_2";}
if(botao_3.isSelected())
{botao = " botao_3";}
JOptionPane.showMessageDialog(null, ((JRadioButton) e.getSource()).getText() + botao);
}});

botao_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(botao_1.isSelected())
{botao = " botao_1";}
if(botao_2.isSelected())
{botao = " botao_2";}
if(botao_3.isSelected())
{botao = " botao_3";}
JOptionPane.showMessageDialog(null, ((JRadioButton) e.getSource()).getText() + botao);
}});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Seus parâmetros são:

Código Parâmetros Definição
cor = new ButtonGroup(); ButtomGroup Cria um grupo de botões
botoes = new JRadioButton("Verde"); botoes Define o nome do botão de opção
botoes = new JRadioButton("Verde"); "Verde" Escreve um texto ao lado do botão de obção
botoes.setSelected(true) setSelected

Seleciona um dos botões de opção:

  • true para selecionado e
  • false para deselecionado
botoes.setBounds(50,10,150,Altura);   Altura = 20

(JCheckBox)

Caixa de seleção

A caixa de seleção parece com o botão de opção, vista anteriormente, mas tem uma diferença inportante.

As caixas de seleção permitem a seleção de vários ítens de uma lista. Cada caixa de verificação pode estar ativada o desativada (o padrão é desativado).

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      private JCheckBox negrito;
      private JCheckBox italico;
      private JCheckBox sublinhado;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      negrito = new JCheckBox("Negrito", false);
      italico = new JCheckBox("Itálico", false);
      sublinhado = new JCheckBox("Sublinhado", true);

      negrito.setBounds(50,10,150,20);
      italico.setBounds(50,30,150,20);
      sublinhado.setBounds(50,50,150,20);

      ct.add(negrito);
      ct.add(italico);
      ct.add(sublinhado);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

negrito.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(negrito.isSelected())
{botao += " btNegrito";}
if(italico.isSelected())
{botao += " btItálico";}
if(sublinhado.isSelected())
{botao += " brSublinhado";}
JOptionPane.showMessageDialog(null, ((JCheckBox) e.getSource()).getText() + botao);
}});

italico.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(negrito.isSelected())
{botao += " Negrito";}
if(italico.isSelected())
{botao += " Itálico";}
if(sublinhado.isSelected())
{botao += " Sublinhado";}
JOptionPane.showMessageDialog(null, ((JCheckBox) e.getSource()).getText() + " = " + botao);
}});
sublinhado.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String botao = "";
if(negrito.isSelected())
{botao += " Negrito";}
if(italico.isSelected())
{botao += " Itálico";}
if(sublinhado.isSelected())
{botao += " Sublinhado";}
JOptionPane.showMessageDialog(null, ((JCheckBox) e.getSource()).getText() + " = " + botao);
}});
      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Seus parâmetros são:

Código Parâmetros Definição
negrito = new JCheckBox("Negrito", false); negrito Define o nome da caixa de seleção
negrito = new JCheckBox("Negrito", false); "Negrito" Escreve o texto ao lado da caixa de seleção
negrito = new JCheckBox("Negrito", false);

false

Marca o botão de seleção

  • true para selecionado e
  • false para deselecionado
negrito.setBounds(50,10,150,Altura);   Altura = 20

(JToggleButton)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JToggleButton botao_1;
private JToggleButton botao_2;
private JToggleButton botao_3;

private ButtonGroup botoes;

private JTextField caixa_1;
private JTextField caixa_2;
private JTextField caixa_3;

      public JavaTeste() {

      super("Formulario");
      this.setSize(340,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
botoes = new ButtonGroup();
botao_1 = new JToggleButton("Botão 1", true);
botoes.add(botao_1);
botao_1.setBounds(15, 0, 100, 25);
ct.add(botao_1);
botao_2 = new JToggleButton("Botão 2", false);
botoes.add(botao_2);
botao_2.setBounds(15, 26, 100, 25);
ct.add(botao_2);
botao_3 = new JToggleButton("Botão 3", false);
botoes.add(botao_3);
botao_3.setBounds(15, 52, 100, 25);
ct.add(botao_3);


caixa_1 = new JTextField("");
caixa_1.setEditable(false);
caixa_1.setBounds(136,0,100,25);
ct.add(caixa_1);
caixa_2 = new JTextField("");
caixa_2.setEditable(false);
caixa_2.setBounds(136,26,100,25);
ct.add(caixa_2);
caixa_3 = new JTextField("");
caixa_3.setEditable(false);
caixa_3.setBounds(136,52,100,25);
ct.add(caixa_3);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao_1.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {

            caixa_1.setText("Botão 1 = " + botao_1.isSelected());

      }});

      botao_2.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {

            caixa_2.setText("Botão 2 = " + botao_2.isSelected());

      }});

      botao_3.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {

            caixa_3.setText("Botão 3 = " + botao_3.isSelected());

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JComboBox)

caixa de combos

Este elemento corresponnde a uma caixa de escolha, na qual o usuário pode selecionar um conjunto pré-determinado de ítens.

Arquivos: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      private JComboBox estado;
      private JButton adicionar;
      private JButton remover;
      private JButton removerTudo;
	  private JButton resultado;

	  boolean errinho_do_java = true;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);


String Lista[] = {"Rio de Janeiro", "São Paulo", "Minas Gerais", "Espírito Santo", "Nenhuma das anteriores"}; 
      estado = new JComboBox(Lista);

      estado.setBounds(0,10,150,25);

      ct.add(estado);
	  
	  adicionar = new JButton("Adicionar");
	  adicionar.setBounds(151,10,150,25);
      ct.add(adicionar);

      remover = new JButton("Remover");
	  remover.setBounds(151,36,150,25);
      ct.add(remover);

     removerTudo = new JButton("Remover Tudo");
	 removerTudo.setBounds(151,62,150,25);
     ct.add(removerTudo);

     resultado = new JButton("Resultado");
	 resultado.setBounds(151,88,150,25);
     ct.add(resultado);

      estado.setSelectedIndex(2);

	  estado.setEditable(true);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

estado.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
	if(errinho_do_java == true){
        String nome = (String)estado.getSelectedItem();
		JOptionPane.showMessageDialog(null, nome);

		errinho_do_java = false;
	} else {
		errinho_do_java = true;
	}
}});

resultado.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
        String nome = (String)estado.getSelectedItem();
		int opcao = estado.getSelectedIndex();
		int total = estado.getItemCount();
		JOptionPane.showMessageDialog(null, nome + "(" + opcao + ") total = " + total);

errinho_do_java = false;

}});

adicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
estado.addItem(estado.getSelectedItem()); 

errinho_do_java = false;
}});

remover.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
		int opcao = estado.getSelectedIndex();
		estado.removeItemAt(opcao);

errinho_do_java = false;
}});

removerTudo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
         estado.removeAllItems();

errinho_do_java = false;
}});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Seus parâmetros são:

Código Parâmetros Definição
String Lista[] = {"Rio de Janeiro", "São Paulo", "Minas Gerais", "Espírito Santo", "Nenhuma das anteriores"}; "Rio de Janeiro", "São Paulo", "Minas Gerais", "Espírito Santo", "Nenhuma das anteriores" Define uma lista de ítens na caixa de combos
estado = new JComboBox(Lista); estado Define o nome da caixa de combos
estado.setBounds(50,10,150,Altura);   Altura = 25

(JList)

Caixa de listagem

A caixa de listagem é semelhante a caixa de combos. Este comando exibe uma lista de ítens que podem ser selecionados pelo usuário.


HORIZONTAL_WRAP

VERTICAL_WRAP

VERTICAL

 


SINGLE_SELECTION

SINGLE_INTERVAL_SELECTION

MULTIPLE_INTERVAL_SELECTION

 

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;
public class JavaTeste extends JFrame {

      private JList instrumento;
      private JButton adicionar;
      private JButton remover;
	  private JButton resultado;
      private DefaultListModel listModel;

	  boolean errinho_do_java = true;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      listModel = new DefaultListModel();
      listModel.addElement("Guitarra");
      listModel.addElement("Baixo");
      listModel.addElement("Teclado");
      listModel.addElement("Bateria");
      listModel.addElement("Sax");
      listModel.addElement("Sanfona");

      instrumento = new JList(listModel);

      JScrollPane barra_de_rolagem = new JScrollPane(instrumento); 

      barra_de_rolagem.setBounds(0,10,150,120);

      ct.add(barra_de_rolagem);
      
	  instrumento.setLayoutOrientation(JList.VERTICAL);
	  //JList.HORIZONTAL_WRAP
	  //JList.VERTICAL_WRAP
	  //JList.VERTICAL
      instrumento.setVisibleRowCount(0); // número de linhas do JList

      instrumento.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
      //ListSelectionModel.SINGLE_SELECTION
      //ListSelectionModel.SINGLE_INTERVAL_SELECTION
      //ListSelectionModel.MULTIPLE_INTERVAL_SELECTION

      instrumento.setSelectedIndex(2);
	  
	  adicionar = new JButton("Adicionar");
	  adicionar.setBounds(151,10,150,25);
      ct.add(adicionar);

      remover = new JButton("Remover");
	  remover.setBounds(151,36,150,25);
      ct.add(remover);

     resultado = new JButton("Resultado");
	 resultado.setBounds(151,62,150,25);
     ct.add(resultado);


      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

instrumento.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
	if(errinho_do_java == true){
        Object nome [] = instrumento.getSelectedValues();
		String x = "";
		for(int i=0; i< nome.length; i++){
		x += nome[i].toString()+"\n";
		}
		JOptionPane.showMessageDialog(null,  x);

		errinho_do_java = false;

	} else {
		errinho_do_java = true;
	}
}});

resultado.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
        Object nome [] = instrumento.getSelectedValues();
		int opcao [] = instrumento.getSelectedIndices();
		int total = listModel.getSize();
		String x = "";
		for(int i=0; i< nome.length; i++){
		x += nome[i].toString() + " (" + opcao[i] + ")\n";
		}
		x += "total = " + total;
		JOptionPane.showMessageDialog(null,  x);

		errinho_do_java = false;
}});

adicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
      listModel.addElement("Novo");

	   errinho_do_java = false;
}});

remover.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
        int index = instrumento.getSelectedIndex();
        listModel.remove(index);

		errinho_do_java = false;
}});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Seus parâmetros são:

Código Parâmetros Definição
String Lista[] = {"Guitarra", "Baixo", "Teclado", "Bateria", "Sax", "Sanfona"}; "Guitarra", "Baixo", "Teclado", "Bateria", "Sax", "Sanfona" Define uma lista de ítens na caixa de listagem
instrumento = new JList(Lista); instrumento Define o nome da caixa de listagem
JScrollPane barra_de_rolagem = new JScrollPane(instrumento); JScrollPane Insere uma barra de rolagem na caixa de listagem
barra_de_rolagem.setBounds(50,10,150,Altura);   Altura = variável

Caixas de diálogos

Caixa de diálogo é uma janela que um programa abre na tela para solicitar algum tipo de reposta do usuário.

São 3 tipos de caisas de diálogos:

a) Caixa para aletar (alert)

b) Caixa para escrever (prompt)

c) Caixa para confirmar (confirm)

Todas estas caixas estão contidos na linguagem Javascript.

a) Caixa para aletar

Este tipo de caixa avisa ao usuário se alguma coisa está dando errado, para depois o mesmo consertar.

Exemplo:
JOptionPane.showMessageDialog(null, "Bem\nVindo\nao\nJava!");
Resultado

Podemos inserir um texto na barra de título e um ícone ao lado do texto

Exemplo:
JOptionPane.showMessageDialog(null, "Texto\nda\ncaixa\nde\ndiálogo", "Título da caixa de diálogo", JOptionPane.WARNING_MESSAGE);
Resultado
"Texto\nda\ncaixa\nde\ndiálogo" Insere um texto na caixa de alerta
"Título da caixa de diálogo" Insere um texto na barra de título
JOptionPane.WARNING_MESSAGE Insere um ícone ao lado do texto

Ícones na caixa de alerta

b) Caixa para escrever

Esta caixa insere algum texto dentro da página html.

Exemplo:

String Texto = JOptionPane.showInputDialog("Digite\nseu\ntexto\naqui!");

JOptionPane.showMessageDialog(null, Texto);

Resultado:

c) Caixa para confirmar

Quando executamos algum procedimento aparece uma janela pedindo se deseja confirmar este procedimento. A caixa para confirmar retorna os valores true (confirmado) ou false (não confirmado).

JOptionPane.YES_NO_OPTION
JOptionPane.YES_NO_CANCEL_OPTION

1º Exemplo:

Exemplo:
int valor = JOptionPane.showConfirmDialog( null, "Mesagem", "Titulo", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (valor==0){
JOptionPane.showMessageDialog(null, "Yes");
} else if (valor==1){
JOptionPane.showMessageDialog(null, "No");
}
Resultado:

2º Exemplo:

Exemplo:
int valor = JOptionPane.showConfirmDialog( null, "Mesagem", "Titulo", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
if (valor==0){
JOptionPane.showMessageDialog(null, "Yes");
} else if (valor==1){
JOptionPane.showMessageDialog(null, "No");
} else if (valor==2){
JOptionPane.showMessageDialog(null, "Cancel");
}
Resultado

3º Exemplo:

    
Exemplo:
String[] opcoes = {"Um", "Dois","Tres","Quatro"};
Object variavel = JOptionPane.showInputDialog( null, "Escolha", "Titulo", JOptionPane.QUESTION_MESSAGE, null, opcoes, "Tres");
if(variavel=="Um") {
JOptionPane.showMessageDialog(null, "Um");
} else if(variavel=="Dois") {
JOptionPane.showMessageDialog(null, "Dois");
} else if(variavel=="Tres") {
JOptionPane.showMessageDialog(null, "Tres");
} else if(variavel=="Quatro") {
JOptionPane.showMessageDialog(null, "Quatro");
}

4º Exemplo:

Exemplo:

String[] opcoes = {"Um", "Dois","Tres","Quatro"};

Object OBJ_variavel = JOptionPane.showOptionDialog(null, "Escolha", "Titulo", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, opcoes, "Tres");

int variavel = Integer.parseInt(OBJ_variavel.toString());

if(variavel==0) {
JOptionPane.showMessageDialog(null, "Um");
} else if(variavel==1) {
JOptionPane.showMessageDialog(null, "Dois");
} else if(variavel==2) {
JOptionPane.showMessageDialog(null, "Tres");
} else if(variavel==3) {
JOptionPane.showMessageDialog(null, "Quatro");
}

(ImageIcon)

(JLabel)

Imagens

Imagem é a representação gráfica ou fotográfica de pessoas ou objetos, com um conjunto de valores de brilho e cor em pixel, armazenadas num arquivo bitmap.

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JLabel Imagem_Teste;
   private JButton botao;
   boolean variavel = true;
      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      Icon img = new ImageIcon("imagem_1.jpg");
      Imagem_Teste = new JLabel(img);

      Imagem_Teste.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());

      ct.add(Imagem_Teste);

      botao = new JButton("Mudando a imagem");
      botao.setBounds(150,0,150,25);
	  ct.add(botao);
	 
      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(variavel == true) {
ImageIcon image = new ImageIcon("imagem_2.jpg");
Imagem_Teste.setIcon(image); 
variavel = false;
} else {
ImageIcon image = new ImageIcon("imagem_1.jpg");
Imagem_Teste.setIcon(image); 
variavel = true;
}
}});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Outros Componentes Java

Barra de menu

( JMenuBar)

A barra de menu é uma faixa retangular apresentada em geral na parte superior da janela de um programa aplicativo, ou a esquerda numa página web, na qual o usuário pode selecionar um entre os vários menus disponíveis. Os nomes dos menus disponíveis são apresentados na barra de menus. A seleção de um desses nomes com o teclado ou o mouse faz com que a lista de opções do menu correspondente seja mostrada na tela.

Resultado:

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {
 	private JRadioButtonMenuItem coresItens[]; 	private ButtonGroup coresGrupos;  	private JRadioButtonMenuItem fontesItens[]; 	private ButtonGroup fontesGrupo;  	private JCheckBoxMenuItem EstiloItens[]; 
	public JavaTeste() {
	      	super("Usando Barra de Menu.");
      		this.setSize(400,200);
      		this.setLocation(50, 100);

		JMenuBar bar = new JMenuBar(); 		setJMenuBar(bar);  		// Barra de Menu: Arquivo 		JMenu ArquivoMenu = new JMenu("Arquivo"); 		ArquivoMenu.setMnemonic('A');  		// Item do Menu: Sobre 		JMenuItem sobreItem = new JMenuItem("Sobre..."); 		sobreItem.setMnemonic('S'); 		sobreItem.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		ArquivoMenu.add(sobreItem);  		// Item do Menu: Sair 		JMenuItem SairItem = new JMenuItem("Sair"); 		SairItem.setMnemonic('i'); 		SairItem.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.exit(0);
				}
			}
		);
		ArquivoMenu.add(SairItem);  		// Ativar Barra de Menu Arquivo 		bar.add(ArquivoMenu);  		// Barra de Menu: Formato 		JMenu FormatoMenu = new JMenu("Formato"); 		FormatoMenu.setMnemonic('F');  		// Menu Cores -> 		JMenu coresMenu = new JMenu("Cores"); 		coresMenu.setMnemonic('c');  		// Cores Itens 		String cores[] = {"Preto", "Azul", "Vermelho", "Verde"}; 		coresItens = new JRadioButtonMenuItem[cores.length]; 		coresGrupos = new ButtonGroup(); 		for (int i = 0; i < cores.length; i++) { 			coresItens[i] = new JRadioButtonMenuItem(cores[i]); 			coresMenu.add(coresItens[i]); 			coresGrupos.add(coresItens[i]); 		} 		coresItens[0].setSelected(true); 
		coresItens[1].addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Cor azul.");
				}
			}
		);

		FormatoMenu.add(coresMenu);  		FormatoMenu.addSeparator();  		// Menu Fonte -> 		JMenu fonteMenu = new JMenu("Fonte"); 		fonteMenu.setMnemonic('n');  		String fontes[] = {"TimesRoman", "Courier", "Helvetica"}; 		fontesItens = new JRadioButtonMenuItem[fontes.length]; 		fontesGrupo = new ButtonGroup(); 		for(int i = 0; i < fontes.length; i++) { 			fontesItens[i] = new JRadioButtonMenuItem(fontes[i]); 			fonteMenu.add(fontesItens[i]); 			fontesGrupo.add(fontesItens[i]); 		} 		fontesItens[0].setSelected(true); 
		fontesItens[2].addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Fonte Helvetica.");
				}
			}
		);


		fonteMenu.addSeparator();  		String Estilo[] = {"Negrito", "Itálico"}; 		EstiloItens = new JCheckBoxMenuItem[Estilo.length]; 		for(int i = 0; i < Estilo.length; i++) { 			EstiloItens[i] = new JCheckBoxMenuItem(Estilo[i]); 			fonteMenu.add(EstiloItens[i]); 		}  		EstiloItens[0].addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Negrito.");
				}
			}
		);

		FormatoMenu.add(fonteMenu);  		bar.add(FormatoMenu); 
      		Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      		setIconImage(Icone);

		this.setVisible(true);

      		this.addWindowListener(new WindowAdapter() {
         		public void windowClosing(WindowEvent e) {
            			System.exit(0);
      		}});
	}
   	public static void main(String[] args) {
      		new JavaTeste();
   	}
}

Exemplo 2

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {


public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

		JMenuBar bar = new JMenuBar();
		setJMenuBar(bar);

		// Barra de Menu: Arquivo
		
		JMenu ArquivoMenu = new JMenu("Arquivo");
		ArquivoMenu.setMnemonic('A');

		// Item do Menu: Sobre
        ImageIcon icon = createImageIcon("images/About.gif");
		JMenuItem Item1 = new JMenuItem("Teste1", icon);
		Item1.setMnemonic('T');
		Item1.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		ArquivoMenu.add(Item1);

        icon = createImageIcon("images/Balloon.gif");
		JMenuItem Item2 = new JMenuItem("Teste2", icon);
		Item2.setMnemonic('T');
		Item2.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		ArquivoMenu.add(Item2);

        icon = createImageIcon("images/MsDos.gif");
		JMenuItem Item3 = new JMenuItem("Teste3", icon);
		Item3.setMnemonic('T');
		Item3.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		ArquivoMenu.add(Item3);

		// Ativar Barra de Menu Arquivo
		bar.add(ArquivoMenu);

Container ct = this.getContentPane();
ct.setLayout(null);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
setIconImage(Icone);

this.setVisible(true);

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}

    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = MenuLookDemo.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

public static void main(String[] args) {
new JavaTeste();
}
}

(JPopupMenu)

Menu rápido

(botão direito do mouse)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      private JPopupMenu menu;

      public JavaTeste() {

      super("Formulario");
      this.setSize(300,300);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

	 menu = new JPopupMenu();
 
		// Item do Menu: Sobre
		JMenuItem sobreItem1 = new JMenuItem("Menu 1");
		sobreItem1.setMnemonic('1');
		sobreItem1.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		menu.add(sobreItem1);

		JMenuItem sobreItem2 = new JMenuItem("Menu 2");
		sobreItem2.setMnemonic('2');
		sobreItem2.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		menu.add(sobreItem2);

		JMenuItem sobreItem3 = new JMenuItem("Menu 3");
		sobreItem3.setMnemonic('3');
		sobreItem3.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(null, "Exemplo de uso de Menus");
				}
			}
		);
		menu.add(sobreItem3);


	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      addMouseListener(new MouseAdapter() {
         public void mousePressed(MouseEvent event) {

            checkForTriggerEvent(event);

         }
	     public void mouseReleassed(MouseEvent event) {
	     
		    checkForTriggerEvent(event);
		 
		 }
		 private void checkForTriggerEvent(MouseEvent event) {
		 
		    menu.show(event.getComponent(), event.getX(), event.getY());
		 
		 }
	  });
  

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

15) Abrindo uma nova Janela:

Existem três tipos de janelas:

(JDialog)

Janela modal

É um tipo de janela que tando pode enviar como receber comandos da janela pai.

Arquivo: janela1.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class janela1 extends JFrame {

   private JButton botao_2;
   private JButton botao_1;
   private JTextField Nome_do_campo;
   private JDialog janela2;

      public janela1() {

      super("Janela 1");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);


	  botao_1 = new JButton("Botao");

      botao_1.setBounds(50, 10, 150, 40);

      ct.add(botao_1);

      Nome_do_campo = new JTextField("Janela 1");

      Nome_do_campo.setBounds(50,60,150,25);

      ct.add(Nome_do_campo);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);


      botao_1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 janela2();

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});
      this.setVisible(true);
   }
      public void janela2(){       janela2 = new JDialog();
	  
      janela2.setTitle("Janela 2");
      janela2.setSize(300,300);
      janela2.setLocation(20, 400);

      Container ct2 = janela2.getContentPane();
      ct2.setLayout(null);

	  botao_2 = new JButton("Botao");
      botao_2.setBounds(50, 10, 150, 40);
      ct2.add(botao_2);


      botao_2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			  if(Nome_do_campo.getText().equals("2ª Janela")){
                   Nome_do_campo.setText("Janela 2");
			  } else {	    
                   Nome_do_campo.setText("2ª Janela");
			  }
              janela2.dispose();

      }});

      janela2.setModal(true);
      janela2.setVisible(true);
  }

   public static void main(String[] args) {

     new janela1();

   }
}

(JFrame)

Janela Pop-up

Para a web, essas janelas são chamadas de Pop-up ou janela instantânea; estas janelas podem ser exibidas a qualquer momento na tela.
Obs: não envia e nem recebe dados da janela pai.

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {
   private JButton botao_1;


      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);


	  botao_1 = new JButton("Botao");

      botao_1.setBounds(50, 10, 150, 40);

      ct.add(botao_1);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      botao_1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

             tela Janela = new tela();               Janela.janelax();

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}
Arquivo: tela.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class tela extends JFrame{

  private JButton botao_2;

  public void janelax(){
      JFrame tela = new JFrame();
      tela.setTitle("Formulario2");
      tela.setSize(300,300);
      tela.setLocation(20, 400);

      Container ct2 = tela.getContentPane();
      ct2.setLayout(null);

	  botao_2 = new JButton("Botao");
      botao_2.setBounds(50, 10, 150, 40);
      ct2.add(botao_2);

      tela.setVisible(true);
      botao_2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            // ============================
            // Comandos do Evento
            // ============================

      }});
  }
}

(JWindow)

Janela sem barra de título e sem bordas

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JWindow {    private JButton botao_1;

      public JavaTeste() {
      JWindow JavaTeste = new JWindow();        // o comando super não é usado em JWindow       // super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);


	  botao_1 = new JButton("Botao");

      botao_1.setBounds(50, 10, 150, 40);

      ct.add(botao_1);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      botao_1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            JOptionPane.showMessageDialog(null, "Saindo do JWindow");
            System.exit(0);
      }});

      // Neste caso o botão fechar não funciona
      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JDesktopPane) & (JInternalFrame)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;

public class JavaTeste extends JFrame {

      private JDesktopPane desktop;
	  private JButton botao;
      private JInternalFrame frame;

      public JavaTeste() {

      super("Formulario");
      this.setSize(720,700);
      this.setLocation(0,0);

      Container ct = this.getContentPane();
      ct.setLayout(null);
	  
      JPanel painel1 = new JPanel();
      painel1.setBackground(Color.blue);
      painel1.setBounds(0, 0, 700, 100);
      ct.add(painel1);

      botao = new JButton("Janela Interna");
      painel1.add(botao);

      desktop = new JDesktopPane();
      desktop.setBackground(Color.red);
      desktop.setBounds(0, 101, 700, 560);
      ct.add(desktop);


for(int i=0; i<5; i++) {
// public JInternalFrame(String titulo, boolean redimensionavel, boolean fechar, boolean maximizavel, boolean iconizavel)
frame = new JInternalFrame(("Internal Frame " + i), true, true, true, true);
frame.setLocation(i*50+10, i*50+10);
frame.setSize(200, 150);
frame.setBackground(Color.white);
frame.setVisible(true);
desktop.add(frame);
frame.moveToFront();
}

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
frame = new JInternalFrame(("Internal Frame XXX"), true, true, true, true);
frame.setLocation(60, 60);
frame.setSize(200, 150);
frame.setBackground(Color.white);
frame.setVisible(true);
desktop.add(frame);
frame.moveToFront();

      }});


      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});
   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Usando HTML

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JLabel Texto;

      public JavaTeste() {

      super("Formulario");
      this.setSize(200,400);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

String TextoString = "<html><div style='background-color:#CCFF00'><p></p>"+
"<h1 align='center'>Usando HTML</h1>" +
"<p align='center'>Texto em <FONT COLOR=RED>RED</FONT> e " +
"<FONT COLOR=GREEN>GREEN</FONT></p>" +
"<p align='center'><B>Negrito</B> e <I>Italico</I></p>" +
"<p><ul>" +
"<li> Exemplo 1 </li>" +
"<li> Exemplo 2 </li>" +
"<li> Exemplo 3 </li>" +
"<li> Exemplo 4 </li>" +
"</ul></p>" +
"<h1 align='center'>Usando CSS</h1>" +
"<p style='background-color:#FF0000'>Texto</p>" +
"</div></html>";

      Texto = new JLabel(TextoString);

      Texto.setBounds(1,1,200,300);

      ct.add(Texto);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

	  // ===================
	  // Evento colocado aqui!!!!
	  // ===================

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Fonte (em Java)

j

Arquivo: JavaTeste.java
/*
Troca a cor padrão, cada int poderá variar de 0 (preto) a
255 (branco), além da possibilidade de um objeto color,
poder ser passado as seguintes cores:
Color.orange
Color.pink
Color.cyan
Color.magenta
Color.yellow
Color.black
Color.white
Color.gray
Color.ligthGray
Color.darkGray
Color.red
Color.green
Color.blue
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(250,300);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
	  
      JPanel painel = new JPanel();
	  painel.setBorder(BorderFactory.createTitledBorder("Em Java"));
      painel.setBounds(0, 0, 230, 230);
      ct.add(painel);

      painel.setLayout(null);

	  JLabel label_1 = new JLabel("Tipo de Fonte");
	  label_1.setBounds(10,20,150,25);
      painel.add(label_1);      
      label_1.setFont(new Font("Courier New", 0, 14));

	  JLabel label_2 = new JLabel("Tamanho da Fonte");
	  label_2.setBounds(10,26,200,50);
      painel.add(label_2);
	  label_2.setFont(new Font("", 0, 20));

	  JLabel label_3 = new JLabel("Cor da Fonte");
	  label_3.setBounds(10,60,150,20);
      painel.add(label_3);
	  label_3.setForeground(Color.BLUE);

	  JLabel label_3rgb = new JLabel("Cor da Fonte (rgb)");
	  label_3rgb.setBounds(10,80,150,20);
      painel.add(label_3rgb);
	  // new Color(vermelho, verde, azul);
	  label_3rgb.setForeground(new Color(125, 32, 155));

	  JLabel label_4 = new JLabel("Cor de Fundo");
	  label_4.setBounds(10,100,150,20);
      painel.add(label_4);
      label_4.setOpaque(true);
      label_4.setBackground(Color.yellow);

	  JLabel label_5 = new JLabel("Negrito");
	  label_5.setBounds(10,120,150,20);
      painel.add(label_5);
      label_5.setFont(new Font("", Font.BOLD, 14));

	  JLabel label_6 = new JLabel("Itálico");
	  label_6.setBounds(10,140,150,20);
      painel.add(label_6);
      label_6.setFont(new Font("", Font.ITALIC, 14));

	  JLabel label_7 = new JLabel("Sublinhado (não tem)");
	  label_7.setBounds(10,160,150,20);
      painel.add(label_7);
	  
	  JLabel label_8 = new JLabel("Invisível");
	  label_8.setBounds(10,180,150,20);
      painel.add(label_8);
      label_8.setVisible(false);

	  JTextField caixa_2 = new JTextField("Não Editável");
	  caixa_2.setBounds(10,200,150,20);
      painel.add(caixa_2);
      caixa_2.setEditable(false);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);


      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Fonte (em Html)

j

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

public JavaTeste() {

super("Formulario");
this.setSize(250,300);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

JPanel painel = new JPanel();
painel.setBorder(BorderFactory.createTitledBorder("Em Html"));
painel.setBounds(0, 0, 230, 230);
ct.add(painel);

painel.setLayout(null);

JLabel label_1 = new JLabel("<html><font face='Courier New'>Tipo de Fonte</font></html>");
label_1.setBounds(10,20,150,25);
painel.add(label_1);

JLabel label_2 = new JLabel("<html><div style='font-size: 15px'>Tamanho da Fonte</div></html>");
label_2.setBounds(10,26,200,50);
painel.add(label_2);

JLabel label_3 = new JLabel("<html><font color='blue'>Cor da Fonte</font></html>");
label_3.setBounds(10,60,150,20);
painel.add(label_3);

JLabel label_3rgb = new JLabel("<html><div style='color: rgb(125, 32, 155)'>Cor da Fonte (rgb)</div></html>");
label_3rgb.setBounds(10,80,150,20);
painel.add(label_3rgb);

JLabel label_4 = new JLabel("<html><div style='background-color: yellow'>Cor de Fundo</div></html>");
label_4.setBounds(10,100,150,20);
painel.add(label_4);

JLabel label_5 = new JLabel("<html><b>Negrito</b></html>");
label_5.setBounds(10,120,150,20);
painel.add(label_5);

JLabel label_6 = new JLabel("<html><i>Itálico</i></html>");
label_6.setBounds(10,140,150,20);
painel.add(label_6);

JLabel label_7 = new JLabel("<html><u>Sublinhado</u></html>");
label_7.setBounds(10,160,150,20);
painel.add(label_7);

JLabel label_8 = new JLabel("Invisível (não funciona)");
label_8.setBounds(10,180,150,20);
painel.add(label_8);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Alinhamento

j

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

     private JLabel alinhamento;
     private JButton botao_1;
     private JButton botao_2;
     private JButton botao_3;
     private JButton botao_4;
     private JButton botao_5;
     private JButton botao_6;

	 public JavaTeste() {

      super("Formulario");
      this.setSize(500,350);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
	  
     Icon img = new ImageIcon("coracao.gif");

      alinhamento = new JLabel(img);
      alinhamento.setBounds(0,0,300,300);
      ct.add(alinhamento);
      
	  botao_1 = new JButton("Horizontal: Esquerda");
      botao_1.setBounds(301,0,200,25);
      ct.add(botao_1);
	  botao_2 = new JButton("Horizontal: Centro");
      botao_2.setBounds(301,26,200,25);
      ct.add(botao_2);
	  botao_3 = new JButton("Horizontal: Direita");
      botao_3.setBounds(301,52,200,25);
      ct.add(botao_3);
 	  botao_4 = new JButton("Vertical: Topo");
      botao_4.setBounds(301,78,200,25);
      ct.add(botao_4);
 	  botao_5 = new JButton("Vertical: Centro");
      botao_5.setBounds(301,104,200,25);
      ct.add(botao_5);
	  botao_6 = new JButton("Vertical: Base");
      botao_6.setBounds(301,130,200,25);
      ct.add(botao_6);
	  
      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao_1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setHorizontalAlignment(JLabel.LEFT);

      }});

      botao_2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setHorizontalAlignment(JLabel.CENTER);

      }});

      botao_3.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setHorizontalAlignment(JLabel.RIGHT);

      }});

      botao_4.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setVerticalAlignment(JLabel.TOP);

      }});

      botao_5.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setVerticalAlignment(JLabel.CENTER);

      }});

      botao_6.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            alinhamento.setVerticalAlignment(JLabel.BOTTOM);

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JPanel)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
	  
      ct.setBackground(Color.red);


      JPanel painel1 = new JPanel();
      painel1.setBackground(Color.yellow);
      painel1.setBounds(0, 0, 100, 100);
      ct.add(painel1);
	 
      JPanel painel2 = new JPanel();
      painel2.setBackground(Color.blue);
      painel2.setBounds(100, 0, 100, 100);
      ct.add(painel2);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});
   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Bordas (JPanel)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(250,250);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
      
      JPanel painel = new JPanel();
	  painel.setBorder(BorderFactory.createTitledBorder("Borda Java"));
      painel.setBounds(0, 0, 200, 200);
      ct.add(painel);

      JButton botao = new JButton("Teste");
      botao.setBounds(10,50,100,25);
	  painel.setLayout(null);
      painel.add(botao);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

	  // ===================
	  // Evento colocado aqui!!!!
	  // ===================

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Shape JPanel

Opacity JPanel

(JSeparator)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {


      public JavaTeste() {

      super("Formulario");
      this.setSize(340,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      JSeparator separador_1 = new JSeparator(JSeparator.HORIZONTAL);
      separador_1.setBounds(15, 15, 300, 1);
	  ct.add(separador_1);

      JLabel texto_1 = new JLabel("Separadores");
      texto_1.setBounds(15, 15, 100, 20);
	  ct.add(texto_1);

	  JTextField caixa_1 = new JTextField("");
	  caixa_1.setBounds(15, 35, 75, 20);
	  ct.add(caixa_1);

      JSeparator separador_2 = new JSeparator(JSeparator.VERTICAL);
      separador_2.setBounds(150, 18, 1, 100);
	  ct.add(separador_2);

      JLabel texto_2 = new JLabel("Separadores");
      texto_2.setBounds(235, 15, 100, 20);
	  ct.add(texto_2);
	  
	  JTextField caixa_2 = new JTextField("");
	  caixa_2.setBounds(235, 35, 75, 20);
	  ct.add(caixa_2);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JFileChooser)

Janela abrir ou salvar arquivos

Resultado:

Código Parâmetro Descrição
JFileChooser fc = new JFileChooser(
"C:\\aausuarios\\meus_documentos\\web2.0");
JFileChooser Janela abrir ou salvar arquivos.
JFileChooser fc = new JFileChooser(
"C:\\aausuarios\\meus_documentos\\web2.0");
"C:\\aausuarios\\meus_documentos\\web2.0" Nome da pasta onde está o seus arquivos do computador.
fc.setDialogTitle(
"Escolha o ficheiro que pretende abrir");
setDialogTitle Insere um texto na barra de título.
fc.setApproveButtonText(
"Selecionar");
setApproveButtonText Botão responsável por abrir ou salvar arquivo.
fc.setFileSelectionMode(
JFileChooser.FILES_AND_DIRECTORIES);
setFileSelectionMode Você quer abrir arquivo? Pasta? ou os dois?
fc.setMultiSelectionEnabled( true ); setMultiSelectionEnabled

true - Ativa multiplos arquivos.
false - Desativa multiplos arquivos.

int res = fc.showOpenDialog(null);

res == JFileChooser.APPROVE_OPTION

Se a opção for aprovada, execulta um comando.
fc.getSelectedFile().toString(); retorna o caminho do diretório onde irá salvar ou abrir.
ExampleFileFilter filtro2 = new ExampleFileFilter();
filtro2.addExtension("jpg");
filtro2.setDescription("Arquivos de Imagem");
fc.setFileFilter(filtro2);
Executa um filtro de arquivos.
JFileChooser.FILES_ONLY Somente arquivo
JFileChooser.DIRECTORIES_ONLY Somente pasta
JFileChooser.FILES_AND_DIRECTORIES Tanto pode ser arquivo como pasta
Código:

JFileChooser fc = new JFileChooser("C:\\aausuarios\\meus_documentos\\web2.0");

// Filtro
ExampleFileFilter filtro1 = new ExampleFileFilter();
filtro1.addExtension("txt");
filtro1.addExtension("pdf");
filtro1.setDescription("Arquivos de Texto");
fc.setFileFilter(filtro1);

ExampleFileFilter filtro2 = new ExampleFileFilter();
filtro2.addExtension("jpg");
filtro2.setDescription("Arquivos de Imagem");
fc.setFileFilter(filtro2);

fc.setDialogTitle("Escolha o ficheiro que pretende abrir");

fc.setApproveButtonText("Selecionar");

fc.setMultiSelectionEnabled( true ); // ativar multi file selection

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

// JFileChooser.FILES_ONLY
// JFileChooser.DIRECTORIES_ONLY
// JFileChooser.FILES_AND_DIRECTORIES

int res = fc.showOpenDialog(null);

if(res == JFileChooser.APPROVE_OPTION){
String diretorio = fc.getSelectedFile().toString();
JOptionPane.showMessageDialog(null, "Voce escolheu o diretório:\n"+ diretorio);
} else {
JOptionPane.showMessageDialog(null, "Voce nao selecionou nenhum diretorio.");
}

Arquivo de Extenção: ExampleFileFilter.java
 import java.io.File;  
 import java.util.Enumeration;  
 import java.util.Hashtable;  
 import javax.swing.filechooser.FileFilter;  
   
 public class ExampleFileFilter extends FileFilter  
 {  
   
     public ExampleFileFilter()  
     {  
         filters = null;  
         description = null;  
         fullDescription = null;  
         useExtensionsInDescription = true;  
         filters = new Hashtable();  
     }  
   
     public ExampleFileFilter(String s)  
     {  
         this(s, null);  
     }  
   
     public ExampleFileFilter(String s, String s1)  
     {  
         this();  
         if(s != null)  
             addExtension(s);  
         if(s1 != null)  
             setDescription(s1);  
     }  
   
     public ExampleFileFilter(String as[])  
     {  
         this(as, null);  
     }  
   
     public ExampleFileFilter(String as[], String s)  
     {  
         this();  
         for(int i = 0; i < as.length; i++)  
             addExtension(as[i]);  
   
         if(s != null)  
             setDescription(s);  
     } 
     public boolean accept(File file)  
     {  
         if(file != null)  
         {  
             if(file.isDirectory())  
                 return true;  
             String s = getExtension(file);  
             if(s != null && filters.get(getExtension(file)) != null)  
                 return true;  
         }  
         return false;  
     }  
   
     public String getExtension(File file)  
     {  
         if(file != null)  
         {  
             String s = file.getName();  
             int i = s.lastIndexOf('.');  
             if(i > 0 && i < s.length() - 1)  
                 return s.substring(i + 1).toLowerCase();  
         }  
         return null;  
     }  
   
     public void addExtension(String s)  
     {  
         if(filters == null)  
             filters = new Hashtable(5);  
         filters.put(s.toLowerCase(), this);  
         fullDescription = null;  
     }  
   
     public String getDescription()  
     {  
         if(fullDescription == null)  
             if(description == null || isExtensionListInDescription())  
             {  
                 fullDescription = description != null ? description + " (" : "(";  
                 Enumeration enumeration = filters.keys();  
                 if(enumeration != null)
                 for(fullDescription += "." + (String)enumeration.nextElement(); enumeration.hasMoreElements(); fullDescription += ", ." + (String)enumeration.nextElement());
         fullDescription += ")";  
             } else  
             {  
                 fullDescription = description;  
             }  
         return fullDescription;  
     }  
   
     public void setDescription(String s)  
     {  
         description = s;  
         fullDescription = null;  
     }  
   
     public void setExtensionListInDescription(boolean flag)  
     {  
         useExtensionsInDescription = flag;  
         fullDescription = null;  
     }  
   
     public boolean isExtensionListInDescription()  
     {  
         return useExtensionsInDescription;  
     }  
   
     private static String TYPE_UNKNOWN = "Type Unknown";  
     private static String HIDDEN_FILE = "Hidden File";  
     private Hashtable filters;  
     private String description;  
     private String fullDescription;  
     private boolean useExtensionsInDescription;  
   
 }

(JFileChooser)

Abrindo Imagens

<< Link para o código fonte

(JTable)

Criando tabelas

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.table.TableColumn;
import javax.swing.table.*;

public class JavaTeste extends JFrame {
private JTable TABELA;

private JButton botao_1;
private JButton botao_2;
private JButton botao_3;
private JButton botao_4;
private JButton botao_5;
private JButton botao_6;
private JButton botao_7;
private JButton botao_8;
private JButton botao_9;
private JButton botao_10;
private JButton botao_11;
private JButton botao_12;
private JButton botao_13;

boolean booleano = true;
boolean booleano2 = true;

public JavaTeste() {

super("Formulario");
this.setSize(722,380);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

TABELA = new JTable();
String jcoluna[] = { " ","Nome", "Telefone","email","Sexo"};
TABELA.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] { },
jcoluna
)
/*
// JTable não editável
{
public boolean isCellEditable(int row, int col) {
return false;
}
}
*/
);

// Adicionando os dados
javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)TABELA.getModel();

dtm.addRow(new Object[]{"", "João", "235", "www@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Ana", "165", "xxx@web.com","Feminino" });
dtm.addRow(new Object[]{"", "Beatriz", "792", "yyy@web.com","Feminino" });
dtm.addRow(new Object[]{"", "Gerônimo", "154", "aaa@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Igor", "754", "rrr@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Mateus", "782", "qqq@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Francisco", "245", "ccc@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Thiago", "348", "jjj@web.com","Masculino"});
dtm.addRow(new Object[]{"", "Antônio", "954", "uuu@web.com","Masculino"});

// Ordenando tabelas
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(dtm);
TABELA.setRowSorter(sorter);

// inserindo caixa de combos na tabela
TableColumn sportColumn = TABELA.getColumnModel().getColumn(2);

JComboBox comboBox = new JComboBox();
comboBox.addItem("menu 1");
comboBox.addItem("menu 2");
comboBox.addItem("menu 3");
comboBox.addItem("menu 4");
comboBox.addItem("menu 5");
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));

// Inserindo barras de rolagens na tabela
JScrollPane barra_de_rolagem = new JScrollPane(TABELA);

barra_de_rolagem.setBounds(0,0,500,340);

ct.add(barra_de_rolagem);

botao_1 = new JButton("Adicionar linha");

botao_1.setBounds(501, 0, 200, 25);

ct.add(botao_1);

botao_2 = new JButton("Remover linha");

botao_2.setBounds(501, 26, 200, 25);

ct.add(botao_2);

botao_3 = new JButton("Editar celula");

botao_3.setBounds(501, 52, 200, 25);

ct.add(botao_3);

botao_4 = new JButton("Ler celula");

botao_4.setBounds(501, 78, 200, 25);

ct.add(botao_4);

botao_5 = new JButton("Esticar Tabela");

botao_5.setBounds(501, 104, 200, 25);

ct.add(botao_5);

botao_6 = new JButton("Almentar a altura das linhas");

botao_6.setBounds(501, 130, 200, 25);

ct.add(botao_6);

botao_7 = new JButton("almentar a largura da coluna");

botao_7.setBounds(501, 158, 200, 25);

ct.add(botao_7);

botao_8 = new JButton("Número de linhas");

botao_8.setBounds(501, 184, 200, 25);

ct.add(botao_8);

botao_9 = new JButton("Número de colunas");

botao_9.setBounds(501, 210, 200, 25);

ct.add(botao_9);

botao_10 = new JButton("Nome da coluna");

botao_10.setBounds(501, 236, 200, 25);

ct.add(botao_10);

botao_11 = new JButton("Linhas Selecionadas");

botao_11.setBounds(501, 262, 200, 25);

ct.add(botao_11);

botao_12 = new JButton("Mudando a fonte com o html");

botao_12.setBounds(501, 288, 200, 25);

ct.add(botao_12);

botao_13 = new JButton("Ocultar coluna");

botao_13.setBounds(501, 314, 200, 25);

ct.add(botao_13);

this.setVisible(true);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

botao_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Adicionar linha
javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)TABELA.getModel();

dtm.addRow(new Object[]{"","","","",""});

}});

botao_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Remover linha
javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)TABELA.getModel();

int [] linhaSelecionada = TABELA.getSelectedRows();

try {
for(int i = (linhaSelecionada.length-1); i >= 0; --i) {
dtm.removeRow(linhaSelecionada[i]);//remove todas as linhas selecionadas
}
} catch (ArrayIndexOutOfBoundsException s) {
JOptionPane.showMessageDialog(null, "Você não selecionou nenhuma linha.");
}

}});

botao_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Editar celula
Object Valor = JOptionPane.showInputDialog("Edite um texto na Linha 3 Coluna 4");
TABELA.setValueAt(Valor,2,3);// setValueAt(linha, coluna)

}});

botao_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Ler celula
String texto = TABELA.getValueAt(2,3).toString(); // getValueAt(linha, coluna)
JOptionPane.showMessageDialog(null, "Lendo o texto na Linha 3 Coluna 4\n"+texto);

}});

botao_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Esticar tabela

// modulo de esticamento da coluna
if(booleano == true) {
// Com esticamento
TABELA.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// almentar a largura de uma das coluna
TABELA.getColumnModel().getColumn(1).setPreferredWidth(300);

booleano = false;
} else {
// Sem esticamento
TABELA.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
booleano = true;
}

}});

botao_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// almentar a altura de todas as linha da tabela

String altura = JOptionPane.showInputDialog("Digite um número\npara a altura de todas as linha\n da tabela:");
TABELA.setRowHeight(Integer.parseInt(altura));

}});

botao_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// almentar a largura de uma das coluna
String largura = JOptionPane.showInputDialog("Digite um número\npara a largura da coluna (1)\n da tabela:");

TABELA.getColumnModel().getColumn(1).setPreferredWidth(Integer.parseInt(largura));

TABELA.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
booleano = false;

}});

botao_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Número de linhas
int Numero_de_linhas = TABELA.getRowCount();
JOptionPane.showMessageDialog(null, "Número de linhas " + Numero_de_linhas);

}});

botao_9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Número de colunas
int Numero_de_colunas = TABELA.getColumnCount();
JOptionPane.showMessageDialog(null, "Número de colunas " + Numero_de_colunas);

}});

botao_10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Nome da coluna
String coluna = TABELA.getColumnName(3).toString();
JOptionPane.showMessageDialog(null, "Nome da coluna " + coluna);

}});

botao_11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Linhas Selecionadas

javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)TABELA.getModel();

int [] linhaSelecionada = TABELA.getSelectedRows();
String lTeste = "";

for(int i = (linhaSelecionada.length-1); i >= 0; --i) {
lTeste += linhaSelecionada[i]+" ";
}
JOptionPane.showMessageDialog(null, "Linhas Selecionadas " + lTeste);
}});

botao_12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Mudando a fonte com o html
// Cor da fonte: <html><font color="#ff0000">Teste</font></html>

// Cor de fundo: <html><span style="background-color:00ff00">Teste</span></html>

// Quebrando a linha: <html>Teste<br>Teste</html>

 

String fonte = JOptionPane.showInputDialog("Mudando a fonte com o html\nCor da fonte: <html><font color=\"#ff0000\">Teste</font></html>\nCor de fundo: <html><span style=\"background-color:#00ff00\">Teste</span></html>\nQuebrando a linha: <html>Teste<br>Teste</html>");
TABELA.setValueAt(fonte,2,3);

}});

botao_13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (booleano2 == true) {
TABELA.getColumnModel().getColumn(1).setMinWidth(0);
TABELA.getColumnModel().getColumn(1).setMaxWidth(0);
booleano2 = false;
} else {
TABELA.getColumnModel().getColumn(1).setMinWidth(30);
TABELA.getColumnModel().getColumn(1).setMaxWidth(1000);
TABELA.getColumnModel().getColumn(1).setPreferredWidth(50);
booleano2 = true;
}
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

 

(JTabbedPane)

Inserindo abas

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      private JTabbedPane tablet;
	  private JButton remover;
	  private JButton adicionar;
      private JButton bloquear;

      public JavaTeste() {

      super("Formulario");
      this.setSize(620,400);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

	  ImageIcon icon = new ImageIcon("Duke16.gif");
	  
	  tablet = new JTabbedPane(JTabbedPane.TOP);

      tablet.setBounds(0,0,500,360);

JPanel jp = new JPanel();
jp.setLayout(null);
JLabel teste1 = new JLabel("Primeira aba e label");
teste1.setBounds(0,0,130,20);
jp.add(teste1);
JTextField teste2 = new JTextField("JTextField parrudo");
teste2.setBounds(131,0,150,25);
jp.add(teste2);
JLabel teste3 = new JLabel("Primeira aba e label2");
teste3.setBounds(0,26,130,20);
jp.add(teste3);
JTextField teste4 = new JTextField("JTextField parrudo2");
teste4.setBounds(131,26,150,25);
jp.add(teste4);

        tablet.addTab("Tab #1", icon, jp, "Comentários #1");



jp = new JPanel();
jp.setLayout(null);
JLabel teste5 = new JLabel("Segunda aba e label");
teste5.setBounds(0,0,130,20);
jp.add(teste5);
JTextField teste6 = new JTextField("JTextField parrudo na segunda aba");
teste6.setBounds(131,0,150,25);
jp.add(teste6);
JLabel teste7 = new JLabel("Segunda aba e label2");
teste7.setBounds(0,26,130,20);
jp.add(teste7);
JTextField teste8 = new JTextField("JTextField parrudo2 na segunda aba");
teste8.setBounds(131,26,150,25);
jp.add(teste8);

        tablet.addTab("Tab #2", icon, jp, "Comentários #2");

      ct.add(tablet);

remover = new JButton("Remover");
remover.setBounds(501,0,100,25);
ct.add(remover);

adicionar = new JButton("Adicionar");
adicionar.setBounds(501,26,100,25);
ct.add(adicionar);

bloquear = new JButton("Bloquear");
bloquear.setBounds(501,52,100,25);
ct.add(bloquear);

	  
	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      remover.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            tablet.remove(0);

      }});
	  
      adicionar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

ImageIcon icon = new ImageIcon("Duke16.gif");

JPanel jp = new JPanel();
jp.setLayout(null);
JLabel teste5 = new JLabel("aba nova");
teste5.setBounds(0,0,130,20);
jp.add(teste5);
JTextField teste6 = new JTextField("JTextField novo");
teste6.setBounds(131,0,150,25);
jp.add(teste6);
JLabel teste7 = new JLabel("aba nova");
teste7.setBounds(0,26,130,20);
jp.add(teste7);
JTextField teste8 = new JTextField("JTextField novo");
teste8.setBounds(131,26,150,25);
jp.add(teste8);

        tablet.addTab("Tab #X", icon, jp, "Comentários #X");

      }});

      bloquear.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            String numero = JOptionPane.showInputDialog("É impossível deixar uma aba invisível,\nmas podemos bloquear uma aba.\nDigite um número:");
			String[] opcoes = {"Ativo", "Desativo"};
			Object OBJ_variavel = JOptionPane.showOptionDialog(null, "Opções:", "Bloqueio", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, opcoes, "Desativo");
            int variavel = Integer.parseInt(OBJ_variavel.toString());
			
			if(variavel==0) {
			tablet.setEnabledAt(Integer.parseInt(numero), true);
			} else if(variavel==1) {
			tablet.setEnabledAt(Integer.parseInt(numero), false);
			}

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

exemplo 2

Arquivo: TabComponentsDemo.java
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 


/*
 * TabComponentDemo.java requires one additional file:
 *   ButtonTabComponent.java
 */



import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

/*
 * Creating and using TabComponentsDemo example  
 */ 
public class TabComponentsDemo extends JFrame {    

    private final int tabNumber = 5;
    private final JTabbedPane pane = new JTabbedPane();
    private JMenuItem tabComponentsItem;
    private JMenuItem scrollLayoutItem;
    
    public static void main(String[] args) {
        //Schedule a job for the event dispatch thread:
        //creating and showing this application's GUI.
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                //Turn off metal's use of bold fonts
	        UIManager.put("swing.boldMetal", Boolean.FALSE);
                new TabComponentsDemo("TabComponentsDemo").runTest();
            }
        });
    }
    
    public TabComponentsDemo(String title) {
        super(title);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        initMenu();        
        add(pane);        
    }
    
    public void runTest() {
        pane.removeAll();
        for (int i = 0; i < tabNumber; i++) {
            String title = "Tab " + i;
            pane.add(title, new JLabel(title));
            initTabComponent(i);
        }
        tabComponentsItem.setSelected(true);
        pane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
        scrollLayoutItem.setSelected(false);
        setSize(new Dimension(400, 200));
        setLocationRelativeTo(null);
        setVisible(true);
    }
    
    
    private void initTabComponent(int i) {
        pane.setTabComponentAt(i,
                 new ButtonTabComponent(pane));
    }    

    //Setting menu
    
    private void initMenu() {
        JMenuBar menuBar = new JMenuBar();
        //create Options menu
        tabComponentsItem = new JCheckBoxMenuItem("Use TabComponents", true);
        tabComponentsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.ALT_MASK));
        tabComponentsItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                for (int i = 0; i < pane.getTabCount(); i++) {
                    if (tabComponentsItem.isSelected()) {
                        initTabComponent(i);
                    } else {
                        pane.setTabComponentAt(i, null);
                    }
                }
            }
        });
        scrollLayoutItem = new JCheckBoxMenuItem("Set ScrollLayout");
        scrollLayoutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.ALT_MASK));
        scrollLayoutItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (pane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT) {
                    pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
                } else {
                    pane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
                }
            }
        });
        JMenuItem resetItem = new JMenuItem("Reset JTabbedPane");
        resetItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.ALT_MASK));
        resetItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                runTest();
            }
        });
       
        JMenu optionsMenu = new JMenu("Options");
        optionsMenu.add(tabComponentsItem);
        optionsMenu.add(scrollLayoutItem);
        optionsMenu.add(resetItem);
        menuBar.add(optionsMenu);
        setJMenuBar(menuBar);
    }
}

Arquivo: ButtonTabComponent.java
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 


import javax.swing.*;
import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
import java.awt.*;
import java.awt.event.*;

/**
 * Component to be used as tabComponent;
 * Contains a JLabel to show the text and 
 * a JButton to close the tab it belongs to 
 */ 
public class ButtonTabComponent extends JPanel {
    private final JTabbedPane pane;

    public ButtonTabComponent(final JTabbedPane pane) {
        //unset default FlowLayout' gaps
        super(new FlowLayout(FlowLayout.LEFT, 0, 0));
        if (pane == null) {
            throw new NullPointerException("TabbedPane is null");
        }
        this.pane = pane;
        setOpaque(false);
        
        //make JLabel read titles from JTabbedPane
        JLabel label = new JLabel() {
            public String getText() {
                int i = pane.indexOfTabComponent(ButtonTabComponent.this);
                if (i != -1) {
                    return pane.getTitleAt(i);
                }
                return null;
            }
        };
        
        add(label);
        //add more space between the label and the button
        label.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
        //tab button
        JButton button = new TabButton();
        add(button);
        //add more space to the top of the component
        setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));
    }

    private class TabButton extends JButton implements ActionListener {
        public TabButton() {
            int size = 17;
            setPreferredSize(new Dimension(size, size));
            setToolTipText("close this tab");
            //Make the button looks the same for all Laf's
            setUI(new BasicButtonUI());
            //Make it transparent
            setContentAreaFilled(false);
            //No need to be focusable
            setFocusable(false);
            setBorder(BorderFactory.createEtchedBorder());
            setBorderPainted(false);
            //Making nice rollover effect
            //we use the same listener for all buttons
            addMouseListener(buttonMouseListener);
            setRolloverEnabled(true);
            //Close the proper tab by clicking the button
            addActionListener(this);
        }

        public void actionPerformed(ActionEvent e) {
            int i = pane.indexOfTabComponent(ButtonTabComponent.this);
            if (i != -1) {
                pane.remove(i);
            }
        }

        //we don't want to update UI for this button
        public void updateUI() {
        }

        //paint the cross
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g.create();
            //shift the image for pressed buttons
            if (getModel().isPressed()) {
                g2.translate(1, 1);
            }
            g2.setStroke(new BasicStroke(2));
            g2.setColor(Color.BLACK);
            if (getModel().isRollover()) {
                g2.setColor(Color.RED);
            }

   int x = 1;   
   int y = 1;   

   int y_p=y+2;   
   g2.drawLine(x+1, y_p, x+12, y_p);   
   g2.drawLine(x+1, y_p+13, x+12, y_p+13);   
   g2.drawLine(x, y_p+1, x, y_p+12);   
   g2.drawLine(x+13, y_p+1, x+13, y_p+12);   
   g2.drawLine(x+3, y_p+3, x+10, y_p+10);   
   g2.drawLine(x+3, y_p+4, x+9, y_p+10);   
   g2.drawLine(x+4, y_p+3, x+10, y_p+9);   
   g2.drawLine(x+10, y_p+3, x+3, y_p+10);   
   g2.drawLine(x+10, y_p+4, x+4, y_p+10);   
   g2.drawLine(x+9, y_p+3, x+3, y_p+9);   

            g2.dispose();
        }
    }

    private final static MouseListener buttonMouseListener = new MouseAdapter() {
        public void mouseEntered(MouseEvent e) {
            Component component = e.getComponent();
            if (component instanceof AbstractButton) {
                AbstractButton button = (AbstractButton) component;
                button.setBorderPainted(true);
            }
        }

        public void mouseExited(MouseEvent e) {
            Component component = e.getComponent();
            if (component instanceof AbstractButton) {
                AbstractButton button = (AbstractButton) component;
                button.setBorderPainted(false);
            }
        }
    };
}


(JToolBar)

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JButton botao_de_teste;
   private JButton botao_ocultar;
   private JToolBar barra_de_tarefas;
   boolean visivel = true;
      public JavaTeste() {

      super("Formulario");
      this.setSize(600,600);
      this.setLocation(50, 100);

      barra_de_tarefas = new JToolBar();

	  Icon icone = new ImageIcon("icones/MsDos.gif");
      JButton botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  icone = new ImageIcon("icones/About.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  icone = new ImageIcon("icones/Balloon.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  
	  barra_de_tarefas.add(new JToolBar.Separator());
	  
	  icone = new ImageIcon("icones/Battery.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  icone = new ImageIcon("icones/Diskmap.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  icone = new ImageIcon("icones/Duke16.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);
	  icone = new ImageIcon("icones/Printer.gif");
      botao_X = new JButton(icone);
      barra_de_tarefas.add(botao_X);


      Container componente = this.getContentPane();
      componente.add(barra_de_tarefas, BorderLayout.NORTH);

      JPanel painel = new JPanel();
      painel.setBackground(Color.blue);
      componente.add(painel, BorderLayout.CENTER);

	  painel.setLayout(null);

      botao_de_teste = new JButton("Clique Aqui!");
	  botao_de_teste.setBounds(0,0,100,25);
	  painel.add(botao_de_teste);

	  botao_ocultar = new JButton("Ocultar");
	  botao_ocultar.setBounds(0,26,100,25);
	  painel.add(botao_ocultar);
	  
      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao_de_teste.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            JOptionPane.showMessageDialog(null, "Testando os a barra de botões!");

      }});

      botao_ocultar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            if(visivel == true) {
			barra_de_tarefas.setVisible(false);
			botao_ocultar.setText("Exibir");
			visivel = false;
			} else {
			barra_de_tarefas.setVisible(true);
			botao_ocultar.setText("Ocultar");
			visivel = true;
            }

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JSplitPane)

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(600,600);
      this.setLocation(50, 100);
      Container ct = this.getContentPane();
      ct.setLayout(null);

      JTextArea area_texto_1 = new JTextArea("Digite seus comentários - PARTE 1");
      area_texto_1.setLineWrap(true);
      JScrollPane barra_de_rolagem_1 = new JScrollPane(area_texto_1);

      JTextArea area_texto_2 = new JTextArea("Digite seus comentários - PARTE 2");
      area_texto_2.setLineWrap(true);
      JScrollPane barra_de_rolagem_2 = new JScrollPane(area_texto_2);

      JTextArea area_texto_3 = new JTextArea("Digite seus comentários - PARTE 3");
      area_texto_3.setLineWrap(true);
      JScrollPane barra_de_rolagem_3 = new JScrollPane(area_texto_3);

     JSplitPane splitPane_1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                                              barra_de_rolagem_1,
                                              barra_de_rolagem_2);


     splitPane_1.setDividerLocation(250);

     JSplitPane splitPane_2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
                                              splitPane_1,
                                              barra_de_rolagem_3);

     splitPane_2.setDividerLocation(250);

     splitPane_2.setBounds(0,0,500,500);
	 
     barra_de_rolagem_1.setMinimumSize(new Dimension(100, 100));
     barra_de_rolagem_2.setMinimumSize(new Dimension(100, 100));
     barra_de_rolagem_3.setMinimumSize(new Dimension(100, 100));

     ct.add(splitPane_2);
	  
      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);


      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JSlider)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;

public class JavaTeste extends JFrame {

      private JTextField caixa;
      private JSlider cDeslizante;
      int valor;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,100);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      caixa = new JTextField("0");
	  caixa.setEditable(false);
      caixa.setBounds(251,0,50,25);
      ct.add(caixa);
    
    cDeslizante = new JSlider(JSlider.HORIZONTAL);

    cDeslizante.setMinimum(0);
    cDeslizante.setMaximum(10);
    cDeslizante.setValue(0);
    
    cDeslizante.setMajorTickSpacing(2);
    cDeslizante.setMinorTickSpacing(1);
    cDeslizante.setPaintTicks(true);
    cDeslizante.setPaintLabels(true);
    cDeslizante.setSnapToTicks(true);
    
	cDeslizante.setBounds(0,0,250,50);
	ct.add(cDeslizante);



	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

    cDeslizante.addChangeListener(
      new ChangeListener(){
        public void stateChanged(ChangeEvent e) {
          JSlider comp = (JSlider) e.getSource();
          
          if(!comp.getValueIsAdjusting())
            valor = comp.getValue();
            caixa.setText((new Integer(valor)).toString());
        }
      }
    );

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JProgressBar)

Barra progressiva

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;

public class JavaTeste extends JFrame {

      private JProgressBar oProgress;
	  private JButton botao;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

         oProgress = new JProgressBar() ;     
         oProgress.setValue(0);     
         oProgress.setStringPainted(true);     
         oProgress.setBounds(10,30,320,20);
         ct.add(oProgress);

         botao = new JButton("Start");
		 botao.setBounds(10,51,100, 25);
		 ct.add(botao);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      botao.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

 Rectangle progressRect = oProgress.getBounds();   
 progressRect.x = 0;   
 progressRect.y = 0;   
 oProgress.setValue(0);   
 oProgress.setMinimum(0);   
 oProgress.setMaximum(100);   
 for(int i=0 ; i <= 100 ; i++){   
	 try {Thread.sleep(100);} catch (InterruptedException ignore) {}
     oProgress.setValue(i); 
     oProgress.paintImmediately( progressRect );   
 } 
      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});
   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JScrollBar)

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      private JScrollBar barra;
      private JTextField caixa;
      int valor;
      public JavaTeste() {

      super("Formulario");
      this.setSize(300,150);
      this.setLocation(50, 100);
      Container ct = this.getContentPane();
      ct.setLayout(null);

      barra = new JScrollBar(JScrollBar.HORIZONTAL);
	  barra.setMinimum(0);  
      barra.setMaximum(100);
	  barra.setValue(0);
	  barra.setBounds(15, 15, 200, 20);
	  ct.add(barra);
	  
	  caixa = new JTextField("0");
	  caixa.setEditable(false);
      caixa.setBounds(216,15,50,20);
      ct.add(caixa);
	  
      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

    barra.addAdjustmentListener(
      new AdjustmentListener(){
        public void adjustmentValueChanged(AdjustmentEvent e) {
          JScrollBar comp = (JScrollBar) e.getSource();
          
          if(!comp.getValueIsAdjusting())
            valor = comp.getValue();
            caixa.setText((new Integer(valor)).toString());
        }
      }
    );


      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JScrollPane)

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(250,250);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);
      
	  Icon img = new ImageIcon("original.gif");
      JLabel Imagem_Teste = new JLabel(img);

      JScrollPane barra_de_rolagem = new JScrollPane(Imagem_Teste); 

      barra_de_rolagem.setBounds(0,0,200,200);

      ct.add(barra_de_rolagem);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

	  // ===================
	  // Evento colocado aqui!!!!
	  // ===================

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JSpinner)

´

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.DefaultFormatter;

public class JavaTeste extends JFrame {

      private JSpinner spinner;
	  private SpinnerModel model;
      private JButton botao;
      private JButton valor;

      public JavaTeste() {

      super("Formulario");
      this.setSize(300,100);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

 int min=0;  
 int max=30;  
 int step=1;  
 int initValue=0;  
 model=new SpinnerNumberModel(initValue, min, max, step);  
 spinner=new JSpinner(model);

JSpinner.DefaultEditor editor = (JSpinner.NumberEditor)spinner.getEditor();       
DefaultFormatter formatter = (DefaultFormatter)editor.getTextField().getFormatter();  
formatter.setAllowsInvalid(false); 

 spinner.setBounds(0,0,50,25);
 ct.add(spinner);


      botao = new JButton("Resultado");
      botao.setBounds(51,0,100,25);
      ct.add(botao);

      valor = new JButton("Valor = 30");
      valor.setBounds(151,0,100,25);
      ct.add(valor);


	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

		     Object modelo = model.getValue(); 
             String Texto = modelo.toString();
             JOptionPane.showMessageDialog(null, Texto);
      }});

      valor.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            model.setValue(30);
      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JColorChooser)
Alterando a cor do botão

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JButton botao_1;
   private JTextField caixa;

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      botao_1 = new JButton("Clique aqui");

      botao_1.setBounds(50,10,150,25);

      ct.add(botao_1);

      caixa = new JTextField("");
	  caixa.setBounds(50,50,300,20);
	  caixa.setEditable(false);
	  ct.add(caixa);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      botao_1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

Color bgColor = JColorChooser.showDialog(JavaTeste.this, "Alterando a cor do botão.", botao_1.getBackground());
if (bgColor != null)
botao_1.setBackground(bgColor);

String x_bgColor = ""+bgColor;
caixa.setText(x_bgColor);
      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

String na base 10 para Hexadecimal

Exemplo:
String decimal = "169";
String hexa = Integer.toHexString(Integer.parseInt(decimal));
hexa = hexa.toUpperCase();
System.out.println("O valor 169 na base 10 em hexadecimal é: " + hexa);
String _hexa = "A9";
int _decimal = Integer.parseInt(_hexa, 16);
System.out.println("O valor hexadeximal de A9 para base 10 é: " + _decimal);
Resultado:
O valor 169 na base 10 em hexadecimal é: A9
O valor hexadeximal de A9 para base 10 é: 169

(TrayIcon)

Inserindo um ícone na barra de tarefas
perto do relógio

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste {

public static void main(String[] args) throws AWTException {

//Obtem o SystemTray da plataforma
SystemTray tray = SystemTray.getSystemTray();

//Cria um menu Popup para o trayIcon
PopupMenu popupMenu = new PopupMenu();
MenuItem menuItem = new MenuItem("Sobre");

menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null,"Exemplo de um SystemTray no Java 6.", "Sobre", JOptionPane.INFORMATION_MESSAGE);

}});

popupMenu.add(menuItem);
popupMenu.add(new MenuItem("-"));
menuItem = new MenuItem("Exit");

menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

int opt = JOptionPane.showConfirmDialog(null, "Confirma sair ?", "Sair", JOptionPane.YES_NO_OPTION);
if (opt == JOptionPane.OK_OPTION) {
System.exit(0);
}

}});

popupMenu.add(menuItem);

//Cria o tryIcon
Image imageIcon = new ImageIcon("Duke16.gif").getImage();
TrayIcon trayIcon = new TrayIcon(imageIcon, "TryIcon Java 6?", popupMenu);

tray.add(trayIcon);

trayIcon.addMouseListener(
  new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
      if(e.getClickCount() == 2) {
        // Duplo-clique detectado
        JOptionPane.showMessageDialog(null, "Bem Vindo!");
      } else {
        // Clique simples detectado.
      }
}});
}

}

Balões

Arquivo: ErrorBallon.java
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ErrorBallon implements ActionListener
{
	private TrayIcon trayIcon;
	
	public ErrorBallon(TrayIcon trayIcon)
	{
		this.trayIcon = trayIcon;
	}
	
	@Override
	public void actionPerformed(ActionEvent e)
	{
		trayIcon.displayMessage("Error Ballon",
				"Mensagem de erro", TrayIcon.MessageType.ERROR);
	}
}
Arquivo: InfoBallon.java
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class InfoBallon implements ActionListener
{
	private TrayIcon trayIcon;
	
	public InfoBallon(TrayIcon trayIcon)
	{
		this.trayIcon = trayIcon;
	}
	
	@Override
	public void actionPerformed(ActionEvent e)
	{
		trayIcon.displayMessage("Info Ballon",
				"Alguma informação", TrayIcon.MessageType.INFO);
	}
}
Arquivo: SimpleBallon.java
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SimpleBallon implements ActionListener
{
	private TrayIcon trayIcon;
	
	public SimpleBallon(TrayIcon trayIcon)
	{
		this.trayIcon = trayIcon;
	}
	
	@Override
	public void actionPerformed(ActionEvent e)
	{
		trayIcon.displayMessage("Simple Ballon",
				"Alguma informação", TrayIcon.MessageType.NONE);
	}
}
Arquivo: WarningBallon.java
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class WarningBallon implements ActionListener
{
	private TrayIcon trayIcon;
	
	public WarningBallon(TrayIcon trayIcon)
	{
		this.trayIcon = trayIcon;
	}
	
	@Override
	public void actionPerformed(ActionEvent e)
	{
		trayIcon.displayMessage("Warning Ballon",
				"Aviso! Aviso!", TrayIcon.MessageType.WARNING);
	}
}
Arquivo: ExitListener.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ExitListener implements ActionListener
{
	@Override
	public void actionPerformed(ActionEvent e)
	{
		System.exit(0);
	}
}
Arquivo: TesteBallonTips.java
import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.net.URL;

import javax.swing.ImageIcon;

public class TesteBallonTips
{
	private TrayIcon trayIcon;

	public TesteBallonTips()
	{
		if (SystemTray.isSupported())
		{
			SystemTray tray = SystemTray.getSystemTray();
			Image image = this.createImage("resources/star.png", "Icone do Tray");
			trayIcon = new TrayIcon(image, "BallonTips");

			PopupMenu popup = new PopupMenu();
			
			MenuItem infoBalaoItem = new MenuItem("Balão de informação");
			infoBalaoItem.addActionListener(new InfoBallon(trayIcon));
			
			MenuItem errorBalaoItem = new MenuItem("Balão de erro");
			errorBalaoItem.addActionListener(new ErrorBallon(trayIcon));
			
			MenuItem warningBalaoItem = new MenuItem("Balão de aviso");
			warningBalaoItem.addActionListener(new WarningBallon(trayIcon));
			
			MenuItem simpleBalaoItem = new MenuItem("Balão simples");
			simpleBalaoItem.addActionListener(new SimpleBallon(trayIcon));
			
			MenuItem sairItem = new MenuItem("Sair");
			sairItem.addActionListener(new ExitListener());
			
			popup.add(infoBalaoItem);
			popup.add(errorBalaoItem);
			popup.add(warningBalaoItem);
			popup.add(simpleBalaoItem);
			popup.add(sairItem);

			trayIcon.setImageAutoSize(true);
			trayIcon.setPopupMenu(popup);
			
			try
			{
				tray.add(trayIcon);
			}
			catch (AWTException e)
			{
				e.printStackTrace();
			}
		}
		else
		{
			System.err.println("System tray não é suportado pelo SO.");
		}
	}

	private Image createImage(String path, String description)
	{
		URL imageURL = this.getClass().getResource(path);

		if (imageURL == null)
		{
			System.err.println("Imagem não encontrada: " + path);
			return null;
		}
		else
		{
			return (new ImageIcon(imageURL, description)).getImage();
		}
	}

	public static void main(String[] args)
	{
		new TesteBallonTips();
	}
}

SimpleTrayNotify

SimpleTrayNotify

Download do CódigoFonte
SimpleTrayNotify.zip
Observação 1:
Use um Editor: NetBeans ou Eclípse, pois fazer manualmente é uma tarefa impossível.
Observação 2:
No Exemplo Abaixo para funcionar tem quer inserir no NetBeans ou Eclipse, a biblioteca: jna-3.0.9.jar que está junto com SimpleTrayNotify.zip
Arquivo: SimpleTrayNotify.java
package simpletraynotify;

import java.awt.TrayIcon.MessageType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

public class SimpleTrayNotify {

    public static SimpleNotifyFrame rFrame;

    public static void main(String[] args) {

      rFrame = new SimpleNotifyFrame();    // all SimpleNotifyFrame setters supports chaining
      rFrame.enableHeader("This is the header!");        // set the headers string
      rFrame.enableContent("This is some content text. Its a bit longer than the header, but this does not really matter! This is some content text. Its a bit longer than the header, but this does not really matter! This is some content text. Its a bit longer than the header, but this does not really matter!"); // set the content string
      rFrame.enableIcon(MessageType.WARNING);            // uses the WARNING, ERROR, INFO and NONE enum fron TrayIcon
      rFrame.enableDraggable();                            // SimpleNotifyFrame is by default undecorated and has a final, unmovable position. enableDraggable() will allow it to be dragged after the animation has been finished.
     
      // add your own button and optional ActionListener
      rFrame.enableActionButton("Clique aqui", new ActionListener() {
              @Override
              public void actionPerformed(ActionEvent arg0) {
                      JOptionPane.showMessageDialog(null, "Test Message");
        }});

        TrayNotifier tn = new TrayNotifier(rFrame);
        tn.setNumPixelsFromLowerScreen(50);
        tn.setNumPixelsFromRightScreen(50);
        tn.run();
    }
}

(LookAndFeel)

Para sistema Windows

    

Para sistema Linux

  

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {
// ===========================
// The LookAndFeel
// ===========================
private UIManager.LookAndFeelInfo[] looks;
private JRadioButton[] escolha;
private ButtonGroup grupo;
// ===========================
// And LookAndFeel
// ===========================

      public JavaTeste() {

      super("Formulario");
      this.setSize(340,540);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

JLabel lb_1 = new JLabel("Nome:");
lb_1.setBounds(0,0,100,20);
ct.add(lb_1);

JTextField tf_1 = new JTextField("");
tf_1.setBounds(55,0,100,20);
ct.add(tf_1);

JLabel lb_2 = new JLabel("E-mail:");
lb_2.setBounds(0,21,100,20);
ct.add(lb_2);

JTextField tf_2 = new JTextField("");
tf_2.setBounds(55,21,100,20);
ct.add(tf_2);

JLabel lb_3 = new JLabel("Assunto:");
lb_3.setBounds(0,42,100,20);
ct.add(lb_3);

JTextField tf_3 = new JTextField("");
tf_3.setBounds(55,42,100,20);
ct.add(tf_3);

JButton bt_1 = new JButton("Enviar");
bt_1.setBounds(0,63,100,25);
ct.add(bt_1);

JButton bt_2 = new JButton("Limpar");
bt_2.setBounds(101,63,100,25);
ct.add(bt_2);

JLabel lb_4 = new JLabel("Mensagem");
lb_4.setBounds(0,89,100,20);
ct.add(lb_4);

JTextArea at_1 = new JTextArea("Digite seus comentários \n \n \n \n \n \n \n \n \n \n");
at_1.setLineWrap(true);
JScrollPane br_1 = new JScrollPane(at_1); 
br_1.setBounds(0,110,200,100);
ct.add(br_1);


String Lista[] = {"Estados", "Rio de Janeiro", "São Paulo", "Minas Gerais", "Espírito Santo", "Nenhuma das anteriores"};
JComboBox estado = new JComboBox(Lista);
estado.setBounds(0,211,150,25);
ct.add(estado);

JSlider cDeslizante = new JSlider(JSlider.HORIZONTAL);
cDeslizante.setMinimum(0);
cDeslizante.setMaximum(10);
cDeslizante.setValue(0);
cDeslizante.setMajorTickSpacing(2);
cDeslizante.setMinorTickSpacing(1);
cDeslizante.setPaintTicks(true);
cDeslizante.setPaintLabels(true);
cDeslizante.setSnapToTicks(true);
cDeslizante.setBounds(0,237,250,50);
ct.add(cDeslizante);

JPanel painel = new JPanel();
painel.setBorder(BorderFactory.createTitledBorder("LookAndFeel"));
painel.setBounds(0, 288, 250, 200);
ct.add(painel);

// ===========================
// The LookAndFeel
// ===========================
ItemSelecionado iselect = new ItemSelecionado();
looks = UIManager.getInstalledLookAndFeels(); 
escolha = new JRadioButton[  looks.length ];  
grupo = new ButtonGroup();  
for (int i = 0; i < looks.length; i++){  
escolha[i] = new JRadioButton( looks[i].getName() );  
escolha[i].addItemListener( iselect );  
grupo.add( escolha[i] );  
painel.add( escolha[i] );  
}
// ===========================
// And LookAndFeel
// ===========================

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);



      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
// ===========================
// The LookAndFeel
// ===========================
   private class ItemSelecionado implements ItemListener {  
           public void itemStateChanged( ItemEvent e) {  
             for (int i=0; i < escolha.length; i++){  
             	if (escolha[i].isSelected()) {  
               		atualiza(i);
			 	}
             }  
           }  
   } 
public void atualiza(int i){  
	try {  
		UIManager.setLookAndFeel(looks[i].getClassName());  
		SwingUtilities.updateComponentTreeUI(this);  
	}catch(Exception e) {  
		e.printStackTrace();  
	}  
}
// ===========================
// And LookAndFeel
// ===========================
}

(JTree)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.JTree;
import javax.swing.tree.*;
import javax.swing.event.*;

public class JavaTeste extends JFrame {

      private DefaultTreeModel model;
	  private JTree tree;
	  private JTextArea area_texto;
	  private JButton botao_1;
	  private JButton botao_2;
	  private JButton botao_3;
	  private JButton botao_4;

public TreeNode makeSampleTree() {
      DefaultMutableTreeNode top = new DefaultMutableTreeNode("Apostilas");

      DefaultMutableTreeNode portugues = new DefaultMutableTreeNode("Português");
      top.add(portugues);
	  
      DefaultMutableTreeNode gramatica = new DefaultMutableTreeNode("Gramática");
      portugues.add(gramatica);
	  
      DefaultMutableTreeNode redacao = new DefaultMutableTreeNode("Redação");
      portugues.add(redacao);
	  
      DefaultMutableTreeNode matematica = new DefaultMutableTreeNode("Matemática");
      top.add(matematica);
	  
      DefaultMutableTreeNode conjunto = new DefaultMutableTreeNode("Conjunto");
      matematica.add(conjunto);
	  
      DefaultMutableTreeNode fracao = new DefaultMutableTreeNode("Fração");
      matematica.add(fracao);

	  return top;
}
      public JavaTeste() {

      super("Formulario");
      this.setSize(500,540);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      TreeNode root = makeSampleTree();
      model = new DefaultTreeModel(root);
      tree = new JTree(model);
      tree.setEditable(true);

      JScrollPane barra_de_rolagem_1 = new JScrollPane(tree);

      area_texto = new JTextArea("");
      area_texto.setLineWrap(true);
      JScrollPane barra_de_rolagem_2 = new JScrollPane(area_texto);
	  
     JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                                              barra_de_rolagem_1,
                                              barra_de_rolagem_2);


      splitPane.setDividerLocation(200);
 
      splitPane.setBounds(0,0,300,500);
      ct.add(splitPane);

      botao_1 = new JButton("Inserir Icones");
      botao_1.setBounds(301,0,150,25);
      ct.add(botao_1);

      botao_2 = new JButton("Excluir Icones");
      botao_2.setBounds(301,26,150,25);
      ct.add(botao_2);

      botao_3 = new JButton("Remover");
      botao_3.setBounds(301,52,150,25);
      ct.add(botao_3);

	  botao_4 = new JButton("Adicionar");
      botao_4.setBounds(301,78,150,25);
      ct.add(botao_4);

	  Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);
      
      this.setVisible(true);

      tree.addTreeSelectionListener(new TreeSelectionListener() {
         public void valueChanged(TreeSelectionEvent  e) {

        try {

        String pasta = tree.getLastSelectedPathComponent().toString();
		JTree treeSource = (JTree) e.getSource();

        TreePath caminho = treeSource.getSelectionPath();

        area_texto.setText("Caminho: " + caminho + "\nPasta: " + pasta);

		String x_caminho = "" + caminho;

		if(x_caminho.equals("[Apostilas, Matemática, Fração]")) {
		      JOptionPane.showMessageDialog(null, "Pasta: Fração");
		}
        } catch (Exception ignore) {}

      }});

     botao_1.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {

    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();

    Icon leafIcon = new ImageIcon("blue.gif");
    Icon openIcon = new ImageIcon("red.gif");
    Icon closedIcon = new ImageIcon("green.gif");

    renderer.setLeafIcon(leafIcon);
    renderer.setClosedIcon(closedIcon);
    renderer.setOpenIcon(openIcon);

      }});

     botao_2.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {

    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();

    renderer.setLeafIcon(null);
    renderer.setClosedIcon(null);
    renderer.setOpenIcon(null);

      }});
	 botao_3.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {

        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
		model.removeNodeFromParent(selectedNode);

      }});
     botao_4.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {

	 DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

	 DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");

     model.insertNodeInto(newNode, selectedNode, selectedNode.getChildCount());

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }

   public static void main(String[] args) {
      new JavaTeste();
   }
}

(Cursor)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

      public JavaTeste() {

      super("Formulario");
      this.setSize(230,500);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      JLabel layout_1 = new JLabel("Cursor.DEFAULT_CURSOR");
	  layout_1.setBounds(10,10,200,30);
	  ct.add(layout_1);
	  layout_1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));

      JLabel layout_2 = new JLabel("Cursor.CROSSHAIR_CURSOR");
	  layout_2.setBounds(10,40,200,30);
	  ct.add(layout_2);
	  layout_2.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

      JLabel layout_3 = new JLabel("Cursor.HAND_CURSOR");
	  layout_3.setBounds(10,70,200,30);
	  ct.add(layout_3);
	  layout_3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

      JLabel layout_4 = new JLabel("Cursor.MOVE_CURSOR");
	  layout_4.setBounds(10,100,200,30);
	  ct.add(layout_4);
	  layout_4.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));

      JLabel layout_5 = new JLabel("Cursor.WAIT_CURSOR");
	  layout_5.setBounds(10,130,200,30);
	  ct.add(layout_5);
	  layout_5.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

      JLabel layout_6 = new JLabel("Cursor.TEXT_CURSOR");
	  layout_6.setBounds(10,160,200,30);
	  ct.add(layout_6);
	  layout_6.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));

      JLabel layout_7 = new JLabel("Cursor.E_RESIZE_CURSOR");
	  layout_7.setBounds(10,190,200,30);
	  ct.add(layout_7);
	  layout_7.setCursor(Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR));

      JLabel layout_8 = new JLabel("Cursor.N_RESIZE_CURSOR");
	  layout_8.setBounds(10,220,200,30);
	  ct.add(layout_8);
	  layout_8.setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));

      JLabel layout_9 = new JLabel("Cursor.NE_RESIZE_CURSOR");
	  layout_9.setBounds(10,250,200,30);
	  ct.add(layout_9);
	  layout_9.setCursor(Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR));

      JLabel layout_10 = new JLabel("Cursor.NW_RESIZE_CURSOR");
	  layout_10.setBounds(10,280,200,30);
	  ct.add(layout_10);
	  layout_10.setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));

      JLabel layout_11 = new JLabel("Cursor.S_RESIZE_CURSOR");
	  layout_11.setBounds(10,310,200,30);
	  ct.add(layout_11);
	  layout_11.setCursor(Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR));

      JLabel layout_12 = new JLabel("Cursor.SE_RESIZE_CURSOR");
	  layout_12.setBounds(10,340,200,30);
	  ct.add(layout_12);
	  layout_12.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));

      JLabel layout_13 = new JLabel("Cursor.SW_RESIZE_CURSOR");
	  layout_13.setBounds(10,370,200,30);
	  ct.add(layout_13);
	  layout_13.setCursor(Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR));

      JLabel layout_14 = new JLabel("Cursor.W_RESIZE_CURSOR");
	  layout_14.setBounds(10,400,200,30);
	  ct.add(layout_14);
	  layout_14.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));

      JLabel layout_15 = new JLabel("Imagem: cursor.gif");
	  layout_15.setBounds(10,430,200,30);
	  ct.add(layout_15);
      Toolkit tkit = layout_15.getToolkit();
      Image image = tkit.getImage("icon.gif");
      Point hotspotPoint = new Point(0,0);
      Cursor customCursor = tkit.createCustomCursor(image, hotspotPoint ,"");
      layout_15.setCursor(customCursor);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);


      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Posição do Mouse

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste {

private JFrame jf;
private JLabel Nome_do_botao;
public JavaTeste() {
jf = new JFrame("Formulario");
jf.setSize(400,200);
jf.setLocation(50, 100);

Container ct = jf.getContentPane();
ct.setLayout(null);

Nome_do_botao = new JLabel("Posição do mouse");

Nome_do_botao.setBounds(0,0,150,20);
ct.add(Nome_do_botao);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
jf.setIconImage(Icone);

jf.setVisible(true);

jf.addMouseMotionListener(new MouseMotionListener() {
     public void mouseDragged(MouseEvent e) {  
     } 
     public void mousePressed(MouseEvent e) {
     }  
     public void mouseReleased(MouseEvent e) {  
     }
     public void mouseMoved(MouseEvent e) {  
         Nome_do_botao.setText("           X = " + (e.getX()-8) + " Y = " + (e.getY()-28));
		 Nome_do_botao.setLocation(e.getX()-8, e.getY()-28);
     }  
});

jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Transparência

Arquivo: SimpleWindow.java
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;

public class SimpleWindow extends JFrame {

   public SimpleWindow() {
      super("Test oval-shaped window");
      this.setLayout(new FlowLayout());
      this.add(new JButton("test"));
      this.add(new JCheckBox("test"));
      this.add(new JRadioButton("test"));
      this.add(new JProgressBar(0, 100));
      this.setSize(new Dimension(400, 300));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setDefaultLookAndFeelDecorated(true);

// ==============================

// ==============================

      this.setVisible(true);
   }

   public static void main(String[] args) {
      new SimpleWindow();
   }

}

Opacity JFrame

Arquivo: TranslucentWindow.java
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;

public class TranslucentWindow extends JFrame {

   public TranslucentWindow() {
      super("Test oval-shaped window");
      this.setLayout(new FlowLayout());
      this.add(new JButton("test"));
      this.add(new JCheckBox("test"));
      this.add(new JRadioButton("test"));
      this.add(new JProgressBar(0, 100));
      this.setSize(new Dimension(400, 300));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setDefaultLookAndFeelDecorated(true);

// ==============================
      this.setUndecorated(true);
      this.setOpacity(0.5f);
// ==============================

      this.setVisible(true);
   }

   public static void main(String[] args) {
      new TranslucentWindow();
   }

}

Shape JFrame

Arquivo: ShapedWindow.java
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;

public class ShapedWindow extends JFrame {

   public ShapedWindow() {
      super("Test oval-shaped window");
      this.setLayout(new FlowLayout());
      this.add(new JButton("test"));
      this.add(new JCheckBox("test"));
      this.add(new JRadioButton("test"));
      this.add(new JProgressBar(0, 100));
      this.setSize(new Dimension(400, 300));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setDefaultLookAndFeelDecorated(true);

// ==============================
      this.setUndecorated(true);
      this.setShape(new Ellipse2D.Double(0, 0, this.getWidth(), this.getHeight()));
// ==============================

      this.setVisible(true);
   }

   public static void main(String[] args) {
      new ShapedWindow();
   }

}

Arquivo: TranslucentShapedWindow.java
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;

public class TranslucentShapedWindow extends JFrame {

   public TranslucentShapedWindow() {
      super("Test oval-shaped window");
      this.setLayout(new FlowLayout());
      this.add(new JButton("test"));
      this.add(new JCheckBox("test"));
      this.add(new JRadioButton("test"));
      this.add(new JProgressBar(0, 100));
      this.setSize(new Dimension(400, 300));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setDefaultLookAndFeelDecorated(true);

// ==============================
      this.setUndecorated(true);
      this.setShape(new Ellipse2D.Double(0, 0, this.getWidth(), this.getHeight()));
      this.setOpacity(0.5f);
// ==============================

      this.setVisible(true);
   }

   public static void main(String[] args) {
      new TranslucentShapedWindow();
   }

}

Movendo a janela fora da barra de título

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste {

private JFrame jf;
private JLabel label;
private Point mousePoint;

     int baseX = -1;  
     int baseY = -1;  
   
public JavaTeste() {
jf = new JFrame("Formulario");
jf.setSize(400,200);
jf.setLocation(50, 100);

Container ct = jf.getContentPane();
ct.setLayout(null);

label = new JLabel("Clique aqui");

label.setBounds(50,10,150,25);
ct.add(label);
label.setOpaque(true);
label.setBackground(Color.yellow);
label.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
jf.setIconImage(Icone);

jf.setVisible(true);

label.addMouseMotionListener(new MouseMotionListener() {
 
     public void mouseDragged(MouseEvent e) {  
		 try { 
             int x = jf.getLocation().x;  
             int y = jf.getLocation().y;
			 int x_ = e.getX();
			 int y_ = e.getY();
			 x = x + x_ - baseX;
			 y = y + y_ - baseY;
             jf.setLocation(x, y);  
		 } catch  (Exception s){}

     }  
     public void mouseMoved(MouseEvent e) {  
     baseX = e.getX();
     baseY = e.getY();
	 }  
     public void mousePressed(MouseEvent e) {
     }  
     public void mouseReleased(MouseEvent e) {  
     }

});

jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Selecionar o texto

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JTextArea area_texto;
private JButton select_texto;
private JButton alter_texto_select;

public JavaTeste() {

super("Formulario");
this.setSize(400,200);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

area_texto = new JTextArea("Digite seus comentários");
// define a quebra de linha automática
area_texto.setLineWrap(true);
JScrollPane barra_de_rolagem = new JScrollPane(area_texto);
barra_de_rolagem.setBounds(0,0,150,100);
ct.add(barra_de_rolagem);

select_texto = new JButton("Selecionar texto");
select_texto.setBounds(151,0,200,25);
ct.add(select_texto);

alter_texto_select = new JButton("Alterar texto selecionado");
alter_texto_select.setBounds(151,26,200,25);
ct.add(alter_texto_select);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

select_texto.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
area_texto.requestFocus();
area_texto.setSelectionStart(0);
area_texto.setSelectionEnd(area_texto.getText().length());

}});

alter_texto_select.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

int x = area_texto.getSelectionStart();
int y = area_texto.getSelectionEnd();
String texto = area_texto.getText().substring(0,x)+"<texto>"+area_texto.getText().substring(x,y)+"</texto>"+area_texto.getText().substring(y,area_texto.getText().length());

area_texto.setText(texto);
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Posição do texto

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste {

private JFrame jf;
private JTextField texto;
private JLabel label;

public JavaTeste() {
jf = new JFrame("Formulario");
jf.setSize(400,200);
jf.setLocation(50, 100);

Container ct = jf.getContentPane();
ct.setLayout(null);

label = new JLabel("Label"); 

label.setBounds(0,0,50,20);
ct.add(label);

texto = new JTextField("");

texto.setBounds(0,25,150,20);
ct.add(texto);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
jf.setIconImage(Icone);

jf.setVisible(true);

texto.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {

Point posicao = label.getLocation();  
   
switch(e.getKeyCode()){
case KeyEvent.VK_UP:  
   label.setLocation(posicao.x, posicao.y-1);  
   break;  
case KeyEvent.VK_DOWN:  
   label.setLocation(posicao.x, posicao.y+1);  
   break;  
case KeyEvent.VK_LEFT:  
   label.setLocation(posicao.x-1, posicao.y);  
   break;  
case KeyEvent.VK_RIGHT:  
   label.setLocation(posicao.x+1, posicao.y);  
   break;  
}  


}});

jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Usando a Tecla de Atalho

tecla de atalho

Arquivo: MyWindow.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class MyWindow extends JFrame{
   public MyWindow(){

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      JLabel texto1 = new JLabel("Precione a tecla Alt+A.");
      texto1.setBounds(50,10,200,20);
      ct.add(texto1);

      JLabel texto2 = new JLabel("Precione a tecla B.");
      texto2.setBounds(50,10+25,200,20);
      ct.add(texto2);

      JLabel texto3 = new JLabel("Precione a tecla F8.");
      texto3.setBounds(50,10+25*2,200,20);
      ct.add(texto3);

      this.setVisible(true);

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

      // Mais um exemplo da tecla de atalho
      // Teclas de controle SHIFT, CTRL e ALT
      // InputEvent.SHIFT_MASK
      // InputEvent.CTRL_MASK
      // InputEvent.META_MASK
      // InputEvent.ALT_MASK

      // Precionando a Tecla Alt+A:
      getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.ALT_MASK), "bt_alt_a");
      getRootPane().getActionMap().put("bt_alt_a", new AbstractAction("bt_alt_a") {
      // Precionando a tecla Alt+A, Aparecerá uma caixa de mensagem "Você precionou a tecla Alt+A
         public void actionPerformed(ActionEvent evt) {
            JOptionPane.showMessageDialog(null, "Você precionou a tecla Alt+A.");
         }});

         // Precionando a Tecla B:
         getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("B"), "bt_b");
      getRootPane().getActionMap().put("bt_b", new AbstractAction("bt_b") {
      // Precionando a tecla B, Aparecerá uma caixa de mensagem "Você precionou a tecla B
         public void actionPerformed(ActionEvent evt) {
            JOptionPane.showMessageDialog(null, "Você precionou a tecla B.");
         }});

         // Precionando a Tecla F8
         getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F8"), "bt_f8");
      getRootPane().getActionMap().put("bt_f8", new AbstractAction("bt_f8") {
      // Precionando a tecla F8, Aparecerá uma caixa de mensagem "Você precionou a tecla F8
         public void actionPerformed(ActionEvent evt) {
            JOptionPane.showMessageDialog(null, "Você precionou a tecla F8.");
         }});

   }

   public static void main(String [] args){
      MyWindow myWindow = new MyWindow();
      myWindow.setVisible(true);
      myWindow.show();
  }
 }

Teclado

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

private JTextField teclado;
private JLabel resultado;
private JButton btCapsLock;

public JavaTeste() {

super("Formulario");
this.setSize(350,300);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

teclado = new JTextField("");
teclado.setBounds(0,0,100,20);
ct.add(teclado);

btCapsLock = new JButton("Caps Lock");
btCapsLock.setBounds(101,0,200,25);
ct.add(btCapsLock);

resultado = new JLabel("");
resultado.setBounds(0,21,300,200);
resultado.setVerticalAlignment(JLabel.TOP);
ct.add(resultado);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

this.setVisible(true);

teclado.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent tecla) {
int codigo = tecla.getKeyCode();
char caracter = tecla.getKeyChar();
String texto = tecla.getKeyText(codigo);
String result = "<html>(keyPressed)<br>Codigo = " + codigo + "<br>Caracter = " + caracter + "<br>Texto = " + texto ;

if(tecla.isShiftDown())
{result += "<br>A tecla Shift foi pressionada";}

if(tecla.isControlDown())
{result += "<br>A tecla Control foi pressionada";}

if(tecla.isAltDown())
{result += "<br>A tecla Alt foi pressionada";}

java.awt.Toolkit t = java.awt.Toolkit.getDefaultToolkit();

if(t.getLockingKeyState(KeyEvent.VK_NUM_LOCK) == true)
{result += "<br>A tecla Num Lock está ativada";}

if(t.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK) == true)
{result += "<br>A tecla Scroll Lock está ativada";}

if(t.getLockingKeyState(KeyEvent.VK_CAPS_LOCK) == true)
{result += "<br>A tecla Caps Lock está ativada";}

result += TeclaEvento(codigo);

result += TeclaChar(caracter);

result += "</html>";
resultado.setText(result);

}});

btCapsLock.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
java.awt.Toolkit t = java.awt.Toolkit.getDefaultToolkit();
if(t.getLockingKeyState(KeyEvent.VK_CAPS_LOCK) == true){
t.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);
btCapsLock.setText("Ativar Caps Lock");
} else {
t.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
btCapsLock.setText("Desativar Caps Lock");
}
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
public String TeclaEvento(int codigo) {

String x = "";

if(codigo == KeyEvent.VK_0) { x += "<br>KeyEvent.VK_0";}
if(codigo == KeyEvent.VK_1) { x += "<br>KeyEvent.VK_1";}
if(codigo == KeyEvent.VK_2) { x += "<br>KeyEvent.VK_2";}
if(codigo == KeyEvent.VK_3) { x += "<br>KeyEvent.VK_3";}
if(codigo == KeyEvent.VK_4) { x += "<br>KeyEvent.VK_4";}
if(codigo == KeyEvent.VK_5) { x += "<br>KeyEvent.VK_5";}
if(codigo == KeyEvent.VK_6) { x += "<br>KeyEvent.VK_6";}
if(codigo == KeyEvent.VK_7) { x += "<br>KeyEvent.VK_7";}
if(codigo == KeyEvent.VK_8) { x += "<br>KeyEvent.VK_8";}
if(codigo == KeyEvent.VK_9) { x += "<br>KeyEvent.VK_9";}
if(codigo == KeyEvent.VK_A) { x += "<br>KeyEvent.VK_A";}
if(codigo == KeyEvent.VK_B) { x += "<br>KeyEvent.VK_B";}
if(codigo == KeyEvent.VK_C) { x += "<br>KeyEvent.VK_C";}
if(codigo == KeyEvent.VK_D) { x += "<br>KeyEvent.VK_D";}
if(codigo == KeyEvent.VK_E) { x += "<br>KeyEvent.VK_E";}
if(codigo == KeyEvent.VK_F) { x += "<br>KeyEvent.VK_F";}
if(codigo == KeyEvent.VK_G) { x += "<br>KeyEvent.VK_G";}
if(codigo == KeyEvent.VK_H) { x += "<br>KeyEvent.VK_H";}
if(codigo == KeyEvent.VK_I) { x += "<br>KeyEvent.VK_I";}
if(codigo == KeyEvent.VK_J) { x += "<br>KeyEvent.VK_J";}
if(codigo == KeyEvent.VK_K) { x += "<br>KeyEvent.VK_K";}
if(codigo == KeyEvent.VK_L) { x += "<br>KeyEvent.VK_L";}
if(codigo == KeyEvent.VK_M) { x += "<br>KeyEvent.VK_M";}
if(codigo == KeyEvent.VK_N) { x += "<br>KeyEvent.VK_N";}
if(codigo == KeyEvent.VK_O) { x += "<br>KeyEvent.VK_O";}
if(codigo == KeyEvent.VK_P) { x += "<br>KeyEvent.VK_P";}
if(codigo == KeyEvent.VK_Q) { x += "<br>KeyEvent.VK_Q";}
if(codigo == KeyEvent.VK_R) { x += "<br>KeyEvent.VK_R";}
if(codigo == KeyEvent.VK_S) { x += "<br>KeyEvent.VK_S";}
if(codigo == KeyEvent.VK_T) { x += "<br>KeyEvent.VK_T";}
if(codigo == KeyEvent.VK_U) { x += "<br>KeyEvent.VK_U";}
if(codigo == KeyEvent.VK_V) { x += "<br>KeyEvent.VK_V";}
if(codigo == KeyEvent.VK_W) { x += "<br>KeyEvent.VK_W";}
if(codigo == KeyEvent.VK_X) { x += "<br>KeyEvent.VK_X";}
if(codigo == KeyEvent.VK_Y) { x += "<br>KeyEvent.VK_Y";}
if(codigo == KeyEvent.VK_Z) { x += "<br>KeyEvent.VK_Z";}
if(codigo == KeyEvent.VK_NUM_LOCK) { x += "<br>KeyEvent.VK_NUM_LOCK";}
if(codigo == KeyEvent.VK_NUMPAD0) { x += "<br>KeyEvent.VK_NUMPAD0";}
if(codigo == KeyEvent.VK_NUMPAD1) { x += "<br>KeyEvent.VK_NUMPAD1";}
if(codigo == KeyEvent.VK_NUMPAD2) { x += "<br>KeyEvent.VK_NUMPAD2";}
if(codigo == KeyEvent.VK_NUMPAD3) { x += "<br>KeyEvent.VK_NUMPAD3";}
if(codigo == KeyEvent.VK_NUMPAD4) { x += "<br>KeyEvent.VK_NUMPAD4";}
if(codigo == KeyEvent.VK_NUMPAD5) { x += "<br>KeyEvent.VK_NUMPAD5";}
if(codigo == KeyEvent.VK_NUMPAD6) { x += "<br>KeyEvent.VK_NUMPAD6";}
if(codigo == KeyEvent.VK_NUMPAD7) { x += "<br>KeyEvent.VK_NUMPAD7";}
if(codigo == KeyEvent.VK_NUMPAD8) { x += "<br>KeyEvent.VK_NUMPAD8";}
if(codigo == KeyEvent.VK_NUMPAD9) { x += "<br>KeyEvent.VK_NUMPAD9";}
if(codigo == KeyEvent.VK_ADD) { x += "<br>KeyEvent.VK_ADD";}
if(codigo == KeyEvent.VK_SUBTRACT) { x += "<br>KeyEvent.VK_SUBTRACT";}
if(codigo == KeyEvent.VK_MULTIPLY) { x += "<br>KeyEvent.VK_MULTIPLY";}
if(codigo == KeyEvent.VK_DIVIDE) { x += "<br>KeyEvent.VK_DIVIDE";}
if(codigo == KeyEvent.VK_DECIMAL) { x += "<br>KeyEvent.VK_DECIMAL";}
if(codigo == KeyEvent.VK_KP_DOWN) { x += "<br>KeyEvent.VK_KP_DOWN";}
if(codigo == KeyEvent.VK_KP_LEFT) { x += "<br>KeyEvent.VK_KP_LEFT";}
if(codigo == KeyEvent.VK_KP_RIGHT) { x += "<br>KeyEvent.VK_KP_RIGHT";}
if(codigo == KeyEvent.VK_KP_UP) { x += "<br>KeyEvent.VK_KP_UP";}
if(codigo == KeyEvent.VK_ESCAPE) { x += "<br>KeyEvent.VK_ESCAPE";}
if(codigo == KeyEvent.VK_ENTER) { x += "<br>KeyEvent.VK_ENTER";}
if(codigo == KeyEvent.VK_BACK_SPACE) { x += "<br>KeyEvent.VK_BACK_SPACE";}
if(codigo == KeyEvent.VK_SPACE) { x += "<br>KeyEvent.VK_SPACE";}
if(codigo == KeyEvent.VK_TAB) { x += "<br>KeyEvent.VK_TAB";}
if(codigo == KeyEvent.VK_CAPS_LOCK) { x += "<br>KeyEvent.VK_CAPS_LOCK";}
if(codigo == KeyEvent.VK_SHIFT) { x += "<br>KeyEvent.VK_SHIFT";}
if(codigo == KeyEvent.VK_CONTROL) { x += "<br>KeyEvent.VK_CONTROL";}
if(codigo == KeyEvent.VK_ALT) { x += "<br>KeyEvent.VK_ALT";}
if(codigo == KeyEvent.VK_ALT_GRAPH) { x += "<br>KeyEvent.VK_ALT_GRAPH";}
if(codigo == KeyEvent.VK_DELETE) { x += "<br>KeyEvent.VK_DELETE";}
if(codigo == KeyEvent.VK_INSERT) { x += "<br>KeyEvent.VK_INSERT";}
if(codigo == KeyEvent.VK_HOME) { x += "<br>KeyEvent.VK_HOME";}
if(codigo == KeyEvent.VK_END) { x += "<br>KeyEvent.VK_END";}
if(codigo == KeyEvent.VK_PAGE_DOWN) { x += "<br>KeyEvent.VK_PAGE_DOWN";}
if(codigo == KeyEvent.VK_PAGE_UP) { x += "<br>KeyEvent.VK_PAGE_UP";}
if(codigo == KeyEvent.VK_PRINTSCREEN) { x += "<br>KeyEvent.VK_PRINTSCREEN";}
if(codigo == KeyEvent.VK_SCROLL_LOCK) { x += "<br>KeyEvent.VK_SCROLL_LOCK";}
if(codigo == KeyEvent.VK_PAUSE) { x += "<br>KeyEvent.VK_PAUSE";}
if(codigo == KeyEvent.VK_DOWN) { x += "<br>KeyEvent.VK_DOWN";}
if(codigo == KeyEvent.VK_LEFT) { x += "<br>KeyEvent.VK_LEFT";}
if(codigo == KeyEvent.VK_RIGHT) { x += "<br>KeyEvent.VK_RIGHT";}
if(codigo == KeyEvent.VK_UP) { x += "<br>KeyEvent.VK_UP";}
if(codigo == KeyEvent.VK_F1) { x += "<br>KeyEvent.VK_F1";}
if(codigo == KeyEvent.VK_F2) { x += "<br>KeyEvent.VK_F2";}
if(codigo == KeyEvent.VK_F3) { x += "<br>KeyEvent.VK_F3";}
if(codigo == KeyEvent.VK_F4) { x += "<br>KeyEvent.VK_F4";}
if(codigo == KeyEvent.VK_F5) { x += "<br>KeyEvent.VK_F5";}
if(codigo == KeyEvent.VK_F6) { x += "<br>KeyEvent.VK_F6";}
if(codigo == KeyEvent.VK_F7) { x += "<br>KeyEvent.VK_F7";}
if(codigo == KeyEvent.VK_F8) { x += "<br>KeyEvent.VK_F8";}
if(codigo == KeyEvent.VK_F9) { x += "<br>KeyEvent.VK_F9";}
if(codigo == KeyEvent.VK_F10) { x += "<br>KeyEvent.VK_F10";}
if(codigo == KeyEvent.VK_F11) { x += "<br>KeyEvent.VK_F11";}
if(codigo == KeyEvent.VK_F12) { x += "<br>KeyEvent.VK_F12";}
if(codigo == KeyEvent.VK_F13) { x += "<br>KeyEvent.VK_F13";}
if(codigo == KeyEvent.VK_F14) { x += "<br>KeyEvent.VK_F14";}
if(codigo == KeyEvent.VK_F15) { x += "<br>KeyEvent.VK_F15";}
if(codigo == KeyEvent.VK_F16) { x += "<br>KeyEvent.VK_F16";}
if(codigo == KeyEvent.VK_F17) { x += "<br>KeyEvent.VK_F17";}
if(codigo == KeyEvent.VK_F18) { x += "<br>KeyEvent.VK_F18";}
if(codigo == KeyEvent.VK_F19) { x += "<br>KeyEvent.VK_F19";}
if(codigo == KeyEvent.VK_F20) { x += "<br>KeyEvent.VK_F20";}
if(codigo == KeyEvent.VK_F21) { x += "<br>KeyEvent.VK_F21";}
if(codigo == KeyEvent.VK_F22) { x += "<br>KeyEvent.VK_F22";}
if(codigo == KeyEvent.VK_F23) { x += "<br>KeyEvent.VK_F23";}
if(codigo == KeyEvent.VK_F24) { x += "<br>KeyEvent.VK_F24";}
if(codigo == KeyEvent.VK_COPY) { x += "<br>KeyEvent.VK_COPY";}
if(codigo == KeyEvent.VK_CUT) { x += "<br>KeyEvent.VK_CUT";}
if(codigo == KeyEvent.VK_PASTE) { x += "<br>KeyEvent.VK_PASTE";}
if(codigo == KeyEvent.VK_WINDOWS) { x += "<br>KeyEvent.VK_WINDOWS";}
if(codigo == KeyEvent.VK_CONTEXT_MENU) { x += "<br>KeyEvent.VK_CONTEXT_MENU";}

// ==============================
// Outros
// Somente os que forma testados
// Obs: estas teclas foram testadas no teclado abnt brasileiro
if(codigo == KeyEvent.VK_QUOTE) { x += "<br>KeyEvent.VK_QUOTE";} // tecla '

if(codigo == KeyEvent.VK_MINUS) { x += "<br>KeyEvent.VK_MINUS";} // tecla -
if(codigo == KeyEvent.VK_EQUALS) { x += "<br>KeyEvent.VK_EQUALS";} // tecla =

if(codigo == KeyEvent.VK_DEAD_TILDE) { x += "<br>KeyEvent.VK_DEAD_TILDE";} // tecla ~
if(codigo == KeyEvent.VK_DEAD_ACUTE) { x += "<br>KeyEvent.VK_DEAD_ACUTE";} // tecla ´

if(codigo == KeyEvent.VK_OPEN_BRACKET) { x += "<br>KeyEvent.VK_OPEN_BRACKET";} // tecla [
if(codigo == KeyEvent.VK_CLOSE_BRACKET) { x += "<br>KeyEvent.VK_CLOSE_BRACKET";} // tecla ]

if(codigo == KeyEvent.VK_COMMA) { x += "<br>KeyEvent.VK_COMMA";} // tecla ,
if(codigo == KeyEvent.VK_PERIOD) { x += "<br>KeyEvent.VK_PERIOD";} // tecla .
if(codigo == KeyEvent.VK_SEMICOLON) { x += "<br>KeyEvent.VK_SEMICOLON";} // tecla ;

return x;

}
public String TeclaChar(char caracter) {
// ================================
// Somente os que forma testados
// Obs: estas teclas foram testadas no teclado abnt brasileiro
String x = "<br><font color='red'>";
switch(caracter) {
case '"': x += "tecla = \""; break;
case '!': x += "tecla = !"; break;

case '@': x += "tecla = @"; break;
case '#': x += "tecla = #"; break;
case '$': x += "tecla = $"; break;
case '%': x += "tecla = %"; break;
case '¨': x += "tecla = ¨"; break;
case '&': x += "tecla = &"; break;
case '*': x += "tecla = *"; break;
case '(': x += "tecla = ("; break;
case ')': x += "tecla = )"; break;
case '_': x += "tecla = _"; break;
case '+': x += "tecla = +"; break;
case '`': x += "tecla = `"; break;
case '^': x += "tecla = ^"; break;
case '{': x += "tecla = {"; break;
case '}': x += "tecla = }"; break;
case '\\': x += "tecla = \\"; break;
case '/': x += "tecla = /"; break;
case '|': x += "tecla = |"; break;
case '<': x += "tecla = <"; break;
case '>': x += "tecla = >"; break;
case ':': x += "tecla = :"; break;
case '?': x += "tecla = ?"; break;

case '²': x += "tecla = ²"; break;
case '³': x += "tecla = ³"; break;
case '£': x += "tecla = £"; break;
case '¢': x += "tecla = ¢"; break;
case '¬': x += "tecla = ¬"; break;
case '§': x += "tecla = §"; break;
case 'ª': x += "tecla = ª"; break;
case 'º': x += "tecla = º"; break;
case '°': x += "tecla = °"; break;
}
return x + "</font>";
}
}

Teclas

VK_0
VK_1
VK_2
VK_3
VK_4
VK_5
VK_6
VK_7
VK_8
VK_9

VK_A
VK_B
VK_C
VK_D
VK_E
VK_F
VK_G
VK_H
VK_I
VK_J
VK_K
VK_L
VK_M
VK_N
VK_O
VK_P
VK_Q
VK_R
VK_S
VK_T
VK_U
VK_V
VK_W
VK_X
VK_Y
VK_Z

VK_NUM_LOCK

VK_NUMPAD0
VK_NUMPAD1
VK_NUMPAD2
VK_NUMPAD3
VK_NUMPAD4
VK_NUMPAD5
VK_NUMPAD6
VK_NUMPAD7
VK_NUMPAD8
VK_NUMPAD9

VK_ADD
VK_SUBTRACT
VK_MULTIPLY
VK_DIVIDE
VK_DECIMAL

VK_KP_DOWN
VK_KP_LEFT
VK_KP_RIGHT
VK_KP_UP

VK_ESCAPE
VK_ENTER
VK_BACK_SPACE
VK_SPACE
VK_TAB
VK_CAPS_LOCK

VK_SHIFT
VK_CONTROL
VK_ALT
VK_ALT_GRAPH

VK_DELETE
VK_INSERT
VK_HOME
VK_END
VK_PAGE_DOWN
VK_PAGE_UP

VK_PRINTSCREEN
VK_SCROLL_LOCK
VK_PAUSE

VK_DOWN
VK_LEFT
VK_RIGHT
VK_UP

VK_F1
VK_F2
VK_F3
VK_F4
VK_F5
VK_F6
VK_F7
VK_F8
VK_F9
VK_F10
VK_F11
VK_F12
VK_F13
VK_F14
VK_F15
VK_F16
VK_F17
VK_F18
VK_F19
VK_F20
VK_F21
VK_F22
VK_F23
VK_F24

Outros

VK_QUOTE : tecla ' VK_MINUS : tecla -
VK_EQUALS : tecla =
VK_DEAD_TILDE : tecla ~
VK_DEAD_ACUTE : tecla ´

VK_OPEN_BRACKET : tecla [
VK_CLOSE_BRACKET : tecla ]
VK_COMMA : tecla ,
VK_PERIOD : tecla .
VK_SEMICOLON : tecla ;

 

VK_COPY
VK_CUT
VK_PASTE
VK_WINDOWS => Constant for the Microsoft Windows "Windows" key.
VK_CONTEXT_MENU => Constant for the Microsoft Windows Context Menu key.

Outras teclas que não foram testadas no exemplo:
Obs: se você quiser mais informações em inglês <<clique aqui>> .

CHAR_UNDEFINED

KEY_FIRST

KEY_LAST

KEY_LOCATION_LEFT

KEY_LOCATION_NUMPAD

KEY_LOCATION_RIGHT

KEY_LOCATION_STANDARD

KEY_LOCATION_UNKNOWN

KEY_PRESSED

KEY_RELEASED

KEY_TYPED

VK_ACCEPT

VK_AGAIN

VK_ALL_CANDIDATES

VK_ALPHANUMERIC

VK_AMPERSAND

VK_ASTERISK

VK_AT

VK_BACK_QUOTE

VK_BACK_SLASH

VK_BEGIN

VK_BRACELEFT

VK_BRACERIGHT

VK_CANCEL

VK_CIRCUMFLEX

VK_CLEAR

VK_CODE_INPUT

VK_COLON

VK_COMPOSE

VK_CONTEXT_MENU

VK_CONVERT

VK_DEAD_ABOVEDOT

VK_DEAD_ABOVERING

VK_DEAD_BREVE

VK_DEAD_CARON

VK_DEAD_CEDILLA

VK_DEAD_CIRCUMFLEX

VK_DEAD_DIAERESIS

VK_DEAD_DOUBLEACUTE

VK_DEAD_GRAVE

VK_DEAD_IOTA

VK_DEAD_MACRON

VK_DEAD_OGONEK

VK_DEAD_SEMIVOICED_SOUND

VK_DEAD_VOICED_SOUND

VK_DOLLAR

VK_EQUALS

VK_EURO_SIGN

VK_EXCLAMATION_MARK

VK_FINAL

VK_FIND

VK_FULL_WIDTH

VK_GREATER

VK_HALF_WIDTH

VK_HELP

VK_HIRAGANA

VK_INPUT_METHOD_ON_OFF

VK_INVERTED_EXCLAMATION_MARK

VK_JAPANESE_HIRAGANA

VK_JAPANESE_KATAKANA

VK_JAPANESE_ROMAN

VK_KANA

VK_KANA_LOCK

VK_KANJI

VK_KATAKANA

VK_LEFT_PARENTHESIS

VK_LESS

VK_META

VK_MODECHANGE

VK_NONCONVERT

VK_NUMBER_SIGN

VK_PLUS

VK_PREVIOUS_CANDIDATE

VK_PROPS

VK_QUOTEDBL

VK_RIGHT_PARENTHESIS

VK_ROMAN_CHARACTERS

VK_SEPARATER

VK_SEPARATOR

VK_SLASH

VK_STOP

VK_UNDEFINED

VK_UNDERSCORE

VK_UNDO

USAUS English QWERTY

Brasil
Teclado abnt brasileiro

Caractere Especial

O uso de caracteres especiais (tais como letras acentuadas, por exemplo) em Java deve ser sempre feito com o código Unicode correspondente ao caractere desejado. Isso evita problemas de codificação e assegura que a sua String será exibida corretamente.
Segue uma lista de caracteres especiais e o seu código Unicode correspondente.

Todas as letras Somente os acentos

Impressora

Arquivo: JavaTeste.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {
private JButton js1;
private JButton js2;
private JButton js3;

public JavaTeste() {

super("Formulario");
this.setSize(604+20,227+38);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

imprimirTxt j1 = new imprimirTxt();
j1.t.setBounds(0,0,200,200);
ct.add(j1.printTexto());

imprimirHtml j2 = new imprimirHtml();
j2.t.setBounds(202,0,200,200);
ct.add(j2.printTexto());

imprimirGrafico j3 = new imprimirGrafico();
j3.setBounds(404,0,200,200);
ct.add(j3);

js1 = new JButton("Imprimir txt");
js1.setBounds(0,202,200,25);
ct.add(js1);

js2 = new JButton("Imprimir Html");
js2.setBounds(202,202,200,25);
ct.add(js2);

js3 = new JButton("Imprimir Gráfico");
js3.setBounds(404,202,200,25);
ct.add(js3);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

// Deixa a janela visível
this.setVisible(true);

js1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new printTxt();
}});

js2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new printHtml();
}});

js3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new pPrintGrafico();
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {
private JButton js1;
private JButton js2;
private JButton js3;

public JavaTeste() {

super("Formulario");
this.setSize(604+20,227+38);
this.setLocation(50, 100);

Container ct = this.getContentPane();
ct.setLayout(null);

imprimirTxt j1 = new imprimirTxt();
j1.t.setBounds(0,0,200,200);
ct.add(j1.printTexto());

imprimirHtml j2 = new imprimirHtml();
j2.t.setBounds(202,0,200,200);
ct.add(j2.printTexto());

imprimirGrafico j3 = new imprimirGrafico();
j3.setBounds(404,0,200,200);
ct.add(j3);

js1 = new JButton("Imprimir txt");
js1.setBounds(0,202,200,25);
ct.add(js1);

js2 = new JButton("Imprimir Html");
js2.setBounds(202,202,200,25);
ct.add(js2);

js3 = new JButton("Imprimir Gráfico");
js3.setBounds(404,202,200,25);
ct.add(js3);

Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(Icone);

// Deixa a janela visível
this.setVisible(true);

js1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new printTxt();
}});

js2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new printHtml();
}});

js3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new pPrintGrafico();
}});

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});

}
public static void main(String[] args) {
new JavaTeste();
}
}

Arquivo imprimirTxt.java

import javax.swing.JTextArea;

import java.io.Serializable;
public class imprimirTxt implements Serializable{

public JTextArea t;

public imprimirTxt() {
t = new JTextArea();
}

public JTextArea printTexto() {
t.setText("\t O livro: \"Aprendendo Java\".\n Esta nas livrarias e \\ ou Jornaleiros");

t.setLineWrap(true);
return t;
}

}

Arquivo: printTxt.java
import java.awt.print.PrinterException;
public class printTxt {
public printTxt(){
imprimirTxt x = new imprimirTxt();
try {
x.printTexto().print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
}
}
Arquivo: imprimirHtml.java

import javax.swing.JTextPane;

import java.io.Serializable;
public class imprimirHtml implements Serializable{

public JTextPane t;

public imprimirHtml() {
t = new JTextPane();
}

public JTextPane printTexto() {
t.setContentType("text/html");
t.setText("<html><font color='red'>Hello World B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B</font><br /><table width='100%' border='1'><tr><td>Hello World </td><td>Hello World </td></tr></table><br /></html>");
return t;
}

}

Arquivo: printHtml.java
import java.awt.print.PrinterException;
public class printHtml {
public printHtml(){
imprimirHtml x = new imprimirHtml();
try {
x.printTexto().print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
}
}
Arquivo: imprimirGrafico.java

import javax.swing.JPanel;
import java.awt.*;
import java.awt.geom.*;

public class imprimirGrafico extends JPanel{

public imprimirGrafico() {
}

public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
g2d.drawString("Hello World", 10, 15);
g2d.fillOval(100, 100, 90, 50);
}

}

Arquivo: pPrintGrafico.java

import java.awt.geom.*;
import java.net.*;
import java.awt.*;
import java.awt.print.*;
import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.JobName;
import javax.print.attribute.standard.OrientationRequested;

public class pPrintGrafico implements Printable {

public pPrintGrafico() {
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.PORTRAIT);
aset.add(new Copies(1));
aset.add(new JobName("Relatório", null));
/*
* Crai um "Printer job"
*/
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(this);

/*
* Localiza um serviço de impressão
* que possa tratar esta requisção.
*/
PrintService[] services = PrinterJob.lookupPrintServices();

if (services.length > 0) {
System.out.println("Impressora seleionada" + services[0].getName());
try {
pj.setPrintService(services[0]);
pj.pageDialog(aset);
if (pj.printDialog(aset)) {
pj.print(aset);
}
} catch (PrinterException pe) {
System.err.println(pe);
}
}
}

/**
* Método necessário quando a interface Printable é implementada.
*/
public int print(Graphics g, PageFormat pf, int pageIndex) {

if (pageIndex == 0) {

Graphics2D g2d = (Graphics2D) g;
Rectangle2D outline = new Rectangle2D.Double(pf.getImageableX(), pf.getImageableY(), pf.getImageableWidth(), pf.getImageableHeight());
g2d.draw(outline);
g2d.translate(pf.getImageableX(), pf.getImageableY());

g2d.setColor(Color.blue);
g2d.drawString("Hello World", 10, 15);
g2d.fillOval(100, 100, 90, 50);

return Printable.PAGE_EXISTS;
} else {
return Printable.NO_SUCH_PAGE;
}
}
}

Print Screen

Arquivo: HelloJava.java
ublic class HelloJava {
public static void main(String[] args) {
System.out.println("Capturando tela");
screen x = new screen();
try {
x.takeAPrint();
} catch(Exception ah) {}
System.out.println("Fim");
}
}
Arquivo: screen.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import java.io.*;
import java.awt.image.*;

import javax.imageio.*;

import java.io.Serializable;
public class screen implements Serializable {
public screen() {
}
public void takeAPrint() throws Exception{

Toolkit toolkit = Toolkit.getDefaultToolkit();
//Definindo a dimensão que quer capturar
//pode ser definido o tamanho que desejar
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// criando o print screen
Robot robot = new Robot();
BufferedImage screenCapturedImage = robot.createScreenCapture(screenRect);

//depois disso é só procurar a imagem no local indicado abaixo, no meu caso em:
// /Users/rodrigogomes/printScreen.png
//Aqui você pode alterar o formato da imagem para, por exemplo, JPG
//É só mudar o “png” para “jpg” e pronto
ImageIO.write(screenCapturedImage, "png", new File("pasta/printScreen.png"));

}
}

Área de transferência

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import javax.swing.TransferHandler;

public class JavaTeste extends JFrame {

   private JTextArea textoEdit;
   private JTextArea textoEdit2;
   private JButton verTexto;
   private JButton codigo_fonte;
   private JButton copiar_codigo_fonte;
   private JButton recortar;
   private JButton copiar;
   private JButton colar;
   private JEditorPane paginaURL;

   private JDialog janela2;

   public String enderecoURL;

      public JavaTeste() {

      super("JEditorPane");
      this.setSize(709,500);
      this.setLocation(0,0);

      Container ct = this.getContentPane();
      ct.setLayout(null);

	  paginaURL = new JEditorPane();

	  paginaURL.setEditable(true);
	  paginaURL.setContentType("text/html");

	  JScrollPane barraDeRolagem = new JScrollPane(paginaURL); 

	  barraDeRolagem.setBounds(1,1,488,250);

	  ct.add(barraDeRolagem);

	  verTexto = new JButton("Enviar para JTextPane");
	  verTexto.setBounds(0,251,200,20);
	  ct.add(verTexto);

      codigo_fonte = new JButton("mostrar código fonte");
	  codigo_fonte.setBounds(201,251,200,20);
	  ct.add(codigo_fonte);

      copiar_codigo_fonte = new JButton("copiar código fonte");
	  copiar_codigo_fonte.setBounds(489,0,200,20);
	  ct.add(copiar_codigo_fonte);

      recortar = new JButton("recortar");
	  recortar.setBounds(489,21,200,20);
	  ct.add(recortar);

      copiar = new JButton("copiar");
	  copiar.setBounds(489,42,200,20);
	  ct.add(copiar);

      colar = new JButton("colar");
	  colar.setBounds(489,63,200,20);
	  ct.add(colar);

      textoEdit = new JTextArea("<b><font color='#FF0000'>Testando a área de transferência</font></b>");
	  textoEdit.setLineWrap(true);

	  JScrollPane barraEdit = new JScrollPane(textoEdit); 

	  barraEdit.setBounds(1,271,488,190);
 
	  ct.add(barraEdit);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);


      verTexto.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 paginaURL.setText(textoEdit.getText());

      }});

      codigo_fonte.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 janela2();

      }});

      copiar_codigo_fonte.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            String Texto = paginaURL.getText();

            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();  
            StringSelection ss = new StringSelection (Texto);  
            clip.setContents (ss, ss);

      }});

      recortar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 paginaURL.cut();

      }});

      copiar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 paginaURL.copy();

      }});

      colar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 paginaURL.paste();

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }


     public void janela2(){
      janela2 = new JDialog();
	  
      janela2.setTitle("Codigo fonte");
      janela2.setSize(420,238);
      janela2.setLocation(20, 30);

      Container ct2 = janela2.getContentPane();
      ct2.setLayout(null);

      textoEdit2 = new JTextArea(paginaURL.getText());
	  textoEdit2.setLineWrap(true);

	  JScrollPane barraEdit2 = new JScrollPane(textoEdit2); 

	  barraEdit2.setBounds(0,0,400,200);
 
	  ct2.add(barraEdit2);


      janela2.setModal(true);
      janela2.setVisible(true);
  }

   public static void main(String[] args) {
      new JavaTeste();
   }
}

Tela Cheia

Arquivo: TesteBounds.java
import javax.swing.*; 

public class TesteBounds extends JWindow{ 

public TesteBounds(){ 
Bounds bounds= new Bounds(); 
bounds.setAllScreenBounds(this); 
this.setBounds(bounds.left,bounds.top,bounds.width,bounds.height); 
} 

public static void main(String[] args){ 
TesteBounds app= new TesteBounds(); 
app.setVisible(true); 
} 
}
Arquivo: Bounds.java
import java.awt.*; 

public class Bounds{ 
//variaveis usadas para armazenar as medidas e possiçoes 
public int width, height, left, top; 

//método utilizado para pega as medidas e possiçoes 
//do Component passado como parâmetro 
public void setAllScreenBounds(Component component){ 
Insets in = Toolkit.getDefaultToolkit().getScreenInsets(component.getGraphicsConfiguration()); 
Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 

width= d.width-(in.left + in.right); 
height= d.height-(in.top + in.bottom); 
left= in.left; 
top= in.top; 
} 
}

Cronômetro

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JLabel maximo;
   private JTextField posicao;
   private JButton play_pause;
   private JButton stop;
   private JButton alterar;

   int pos = 0;
   int max = 100;
   int tempo = 1000;
   boolean Xplay_pause = false;
   String play_pause_text = "Play";

      public JavaTeste() {

      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      play_pause = new JButton("Play");
      play_pause.setBounds(0,0,100,25);
      ct.add(play_pause);

      stop = new JButton("stop");
      stop.setBounds(101,0,100,25);
      ct.add(stop);

      posicao = new JTextField("0");
      posicao.setBounds(202,0,100,25);
      ct.add(posicao);

      maximo = new JLabel("Limite maximo: "+max);
      maximo.setBounds(303,0,300,25);
      ct.add(maximo);

      alterar = new JButton("Alterar");
      alterar.setBounds(0,26,100,25);
      ct.add(alterar);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      alterar.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            xStop();
            String _maximo = JOptionPane.showInputDialog("Limite máximo: "+max);
			if(!(_maximo.equals("") || _maximo.equals(null))){
				int xMax = xMaximo(Integer.parseInt(_maximo));
				maximo.setText("Limite maximo: "+xMax);
			}

            String _posicao = JOptionPane.showInputDialog("posição: "+pos);
			if(!(_posicao.equals("") || _posicao.equals(null))){
				int xPos = xPosicao(Integer.parseInt(_posicao));
				posicao.setText(""+xPos);
			}

            String _tempo = JOptionPane.showInputDialog("tempo: "+tempo);
				if(!(_tempo.equals("") || _tempo.equals(null))){
				xTempo(Integer.parseInt(_tempo));
			}
      }});

      stop.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            int xPos = xStop();
			posicao.setText(""+xPos);

      }});

      play_pause.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			play_pause.setText(getPlayPause());

      }});

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
public int xStop(){
	pos = 0;
	Xplay_pause = false;
	play_pause.setText("Play");
	return pos;
}

public int xMaximo(int x){
	max = x;
	return max;
}

public int xPosicao(int x){
	pos = x;
	return pos;
}

public int xTempo(int x){
	tempo = x;
	return tempo;
}

public String getPlayPause(){
	if(Xplay_pause == false){
		Xplay_pause = true;
		getPlay();
		play_pause_text = "Pause";
	} else {
		Xplay_pause = false;
		play_pause_text = "Play";
	}

	return play_pause_text;

}

public void getPlay(){
	Thread runner = new Thread(new Runnable() { 
		public void run() {
			while(Xplay_pause == true) {
				pos = pos + 1;
				try {
					Thread.sleep(tempo);
				} catch (Exception ex) {}
				if(pos > max){
					Xplay_pause = false;
					pos = 0;
				}
				posicao.setText(""+pos);
			}
		}});
	runner.start();
}

}

Criptografia

Somente criptografar

Arquivo: JavaCript.java
/*
segue uma sugestão....

Por que a necessidade de Descriptografar a senha?
Um método mais seguro, é vc compara as criptografias.
O que eu estou tentando dizer é que é muito mais seguro vc criptografar
a senha que o usuário digitou e comparar esse valor (criptografado)
com a senha criptografada que vc tem no seu Banco de Dados. Isso evita que senha
seja interceptadas num trafego de rede.
*/

import java.util.Scanner;

public class JavaCript {
public static void main(String[] args) {
String Texto = "";
Scanner teclado = new Scanner(System.in);
System.out.println("Texto: ");
Texto = teclado.next();
String cript = encrypt(Texto);
System.out.println("Criptografar: " + cript);
}
    public static String encrypt(String sign) {   
       try {   
          java.security.MessageDigest md =   
             java.security.MessageDigest.getInstance("MD5");   
          md.update(sign.getBytes());   
          byte[] hash = md.digest();   
          StringBuffer hexString = new StringBuffer();   
          for (int i = 0; i < hash.length; i++) {   
             if ((0xff & hash[i]) < 0x10)   
                hexString.append(   
                   "0" + Integer.toHexString((0xFF & hash[i])));   
             else   
                hexString.append(Integer.toHexString(0xFF & hash[i]));   
          }   
          sign = hexString.toString();   
       }   
       catch (Exception nsae) {   
          nsae.printStackTrace();   
       }   
       return sign;   
    }
}

Criptografar e Descriptografar

Este código abaixo é só um exemplo, um resumo, você pode criar um código criptográfico a partir deste modelo:

Obs:

Arquivo: crypt.java
public class crypt {
public static  void main(String[] args){
String Texto = "Ola tudo bem!";
System.out.println("Texto = "+Texto);

String cript = Criptografar(Texto);
System.out.println("Criptografar = "+cript);

String descript = Descriptografar(cript);
System.out.println("Descriptografar = "+ descript);

}
public static String Criptografar(String teste){
    String s = "";
    for(int x = 0; x <= teste.length(); x++){
        try {
            s += ""+(char)(((int)teste.charAt(x))+10);
        } catch (Exception err1) {}
    }
    return s;
}
public static String Descriptografar(String teste){
    String s = "";
    for(int x = 0; x <= teste.length(); x++){
        try {
            s += ""+(char)(((int)teste.charAt(x))-10);
        } catch (Exception err1) {}
    }
    return s;
}
}

(JEditorPane)

Lendo um arquivo em um servidor da Web

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 import java.io.*; import java.net.*; import javax.swing.event.*;

public class JavaTeste extends JFrame {

   private JTextField textoURL;
   private JButton atualizarURL;
   private JEditorPane paginaURL;

   public String enderecoURL;

      public JavaTeste() {

      super("JEditorPane");
      this.setSize(510,500);
      this.setLocation(0,0);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      textoURL = new JTextField("Digite seu endereço");

      textoURL.setBounds(1,1,400,20);

      ct.add(textoURL);
	  
	  atualizarURL = new JButton("Atualizar");
	  
	  atualizarURL.setBounds(401,1,90,20);
	  
	  ct.add(atualizarURL);
	  
	  paginaURL = new JEditorPane(); 	   	  paginaURL.setEditable(false);  	  JScrollPane barraDeRolagem = new JScrollPane(paginaURL);  	   	  barraDeRolagem.setBounds(1,22,488,430); 	   	  ct.add(barraDeRolagem);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);

      atualizarURL.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

            try{ 			    paginaURL.setPage(textoURL.getText()); 			} catch (IOException ioException) { 			    JOptionPane.showMessageDialog(null, "URL inválido!\ndigite novamente."); 			}

      }});

      paginaURL.addHyperlinkListener(new HyperlinkListener() { 	     public void hyperlinkUpdate(HyperlinkEvent event) {           		 if(event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 		 enderecoURL = event.getURL().toString();             try{ 			    paginaURL.setPage(enderecoURL); 				textoURL.setText(enderecoURL); 			} catch (IOException ioException) { 			    JOptionPane.showMessageDialog(null, "URL inválido!\ndigite novamente."); 			} 	     }        }});
	 
      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

Editor de Texto Java

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaTeste extends JFrame {

   private JTextArea textoEdit;
   private JButton verTexto;
   private JEditorPane paginaURL;

   public String enderecoURL;

      public JavaTeste() {

      super("JEditorPane");
      this.setSize(510,500);
      this.setLocation(0,0);

      Container ct = this.getContentPane();
      ct.setLayout(null);

	  paginaURL = new JEditorPane();

	  paginaURL.setEditable(true);
	  paginaURL.setContentType("text/html");

	  JScrollPane barraDeRolagem = new JScrollPane(paginaURL); 

	  barraDeRolagem.setBounds(1,1,488,250);

	  ct.add(barraDeRolagem);

	  verTexto = new JButton("Texto");

	  verTexto.setBounds(401,251,90,20);

	  ct.add(verTexto);
  
textoEdit = new JTextArea("<b><font color='#FF0000'>Testando JTextPane</font></b>");
	  textoEdit.setLineWrap(true);

	  JScrollPane barraEdit = new JScrollPane(textoEdit); 

	  barraEdit.setBounds(1,271,488,190);
 
	  ct.add(barraEdit);

      Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); 
      setIconImage(Icone);

      this.setVisible(true);
JOptionPane.showMessageDialog(null, "Toda vez que digitar \"vermelho\" aparecerá uma mensagem dizendo:\nTestando JTextPane");
      verTexto.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {

			 paginaURL.setText(textoEdit.getText());

      }});

	  paginaURL.addKeyListener(new KeyAdapter() { 	     public void keyPressed(KeyEvent e) {              String Texto = paginaURL.getText();              if(Texto.indexOf("vermelho")>0){
                            paginaURL.setText(Texto.replace( "vermelho", "<b> <font color='#FF0000'> Testando JTextPane </font> </b>"));
 			 } 
      }});
 
      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
      new JavaTeste();
   }
}

(JTextPane)

Arquivo: JavaTeste.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.text.*;

public class JavaTeste extends JFrame {

	  String texto = ""
	  + "Texto: Tipo de Fonte \n "
	  + "Texto: Tamanho da Fonte \n "
	  + "Texto: Cor da Fonte \n "
	  + "Texto: Cor de Fundo \n "
	  + "Texto: Negrito \n "
	  + "Texto: Itálico \n "
	  + "Texto: Sublinhado \n "
	  + "Figura: <figura> \n "
	  + "Botão: <botao> \n";

      private JTextPane textpane;
      private StyledDocument document;
      private JButton botao_st;
      private JButton btAdicionar;

	  public JavaTeste() {

      super("Formulario");
      this.setSize(500,550);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

    StyleContext context = new StyleContext();
    document = new DefaultStyledDocument(context);
	
	try {
	 document.insertString(0, texto, null);
	 } catch (BadLocationException badLocationException) {
      System.err.println("Oops");
    }

     textpane = new JTextPane(document);
	 JScrollPane barra = new JScrollPane(textpane);
	 barra.setBounds(0,0,450,450);
     ct.add(barra);
     
	 btAdicionar = new JButton("Adicionar \"Hello Java\"");
	 btAdicionar.setBounds(0,451,400,25);
     ct.add(btAdicionar);
	 JLabel enter = new JLabel("Pressione a tecla enter para abrir uma caixa de diálogo");
	 enter.setBounds(0,477,400,20);
     ct.add(enter);	 
// ============================
// Inicio do Documento
// ============================
	SimpleAttributeSet atributo_1 = new SimpleAttributeSet();
	StyleConstants.setFontFamily(atributo_1, "courier new");
	estilo("Tipo de Fonte", texto, atributo_1);

	SimpleAttributeSet atributo_2 = new SimpleAttributeSet();
	StyleConstants.setFontSize(atributo_2, 36);
	estilo("Tamanho da Fonte", texto, atributo_2);

	SimpleAttributeSet atributo_3 = new SimpleAttributeSet();
	StyleConstants.setForeground(atributo_3, Color.red);
	estilo("Cor da Fonte", texto, atributo_3);

    SimpleAttributeSet atributo_4 = new SimpleAttributeSet();
    StyleConstants.setBackground(atributo_4, Color.yellow);
    estilo("Cor de Fundo", texto, atributo_4);
	
	SimpleAttributeSet atributo_5 = new SimpleAttributeSet();
    StyleConstants.setBold(atributo_5, true);
    estilo("Negrito", texto, atributo_5);

	SimpleAttributeSet atributo_6 = new SimpleAttributeSet();
	StyleConstants.setItalic(atributo_6, true);
	estilo("Itálico", texto, atributo_6);
	
	SimpleAttributeSet atributo_7 = new SimpleAttributeSet();
	StyleConstants.setUnderline(atributo_7, true);
	estilo("Sublinhado", texto, atributo_7);
	
	SimpleAttributeSet atributo_8 = new SimpleAttributeSet();
    Icon icon = new ImageIcon("coracao.gif");
    JLabel label = new JLabel(icon);
    StyleConstants.setComponent(atributo_8, label);
	estilo("", texto, atributo_8);  	SimpleAttributeSet atributo_9 = new SimpleAttributeSet();     botao_st = new JButton("Clique aqui");     StyleConstants.setComponent(atributo_9, botao_st); 	estilo("", texto, atributo_9); // ============================ // Fim do Documento // ============================        Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");        setIconImage(Icone);        this.setVisible(true);        botao_st.addActionListener(new ActionListener() {          public void actionPerformed(ActionEvent e) {              JOptionPane.showMessageDialog(null, "Bem Vindo!");        }});        btAdicionar.addActionListener(new ActionListener() {          public void actionPerformed(ActionEvent e) {              SimpleAttributeSet atributo_10 = new SimpleAttributeSet(); 			StyleConstants.setBold(atributo_10, true); 			StyleConstants.setUnderline(atributo_10, true); 			StyleConstants.setBackground(atributo_10, Color.yellow); 			StyleConstants.setForeground(atributo_10, Color.blue); 			adicionar(atributo_10);        }});        textpane.addKeyListener(new KeyAdapter() { 	     public void keyPressed(KeyEvent e) {           if (e.getKeyCode() == KeyEvent.VK_ENTER) {             JOptionPane.showMessageDialog(null, "A tecla ENTER foi pressionada");           }       }});        this.addWindowListener(new WindowAdapter() {          public void windowClosing(WindowEvent e) {             System.exit(0);       }});     }    public void estilo(String palavra, String texto, SimpleAttributeSet atributo ){ 	try { 	  int local_1 = texto.indexOf(palavra); 	  int local_2 = palavra.length();       document.setCharacterAttributes(local_1, local_2, atributo, false);     } catch (Exception e) {       System.err.println("Oops");     }    }    public void adicionar(SimpleAttributeSet atributo){     try {       document.insertString(document.getLength(), "Hello Java \n", atributo);     } catch (BadLocationException badLocationException) {       System.err.println("Oops");     }    }    public static void main(String[] args) {       new JavaTeste();    } }

Mostrando o código fonte

Este arquivo Mostra em modo DOS o código fonte do www.yahoo.com, este código pode ser substituido para se adaptar numa interfase gráfica, veja o código abaixo:

Arquivo: URLConnectionReader.java
import java.net.*;
import java.io.*;

public class JavaTeste {
    public static void main(String[] args) {
       try {
       rURLConnection("http://www.yahoo.com/");
       } catch (Exception error) {
          System.out.println("A URL não Funcionou");
          System.out.println(error.getMessage());
       }

    }
    public static void rURLConnection(String VarURL) throws Exception {
        URL _URL = new URL(VarURL);
        URLConnection yc = _URL.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}
Resultado:

Como evitar que um programa seja executado mais de uma vez

Exclusão mútua (Mutual exclusion, ou simplesmente MUTEX) é usada em programação concorrente, para evitar o acesso simultâneo à informações que não podem ser compatilhadas.

Para resolver este problema foi utilizado o RMI.

Se tentar abrir o programa pela 2ª vez:

Arquivo sinal.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class sinal extends JFrame {

   private JLabel texto;

      public sinal() {
      super("Formulario");
      this.setSize(400,200);
      this.setLocation(50, 100);

      Container ct = this.getContentPane();
      ct.setLayout(null);

      texto = new JLabel("Teste");
      texto.setBounds(50,10,150,25);
      ct.add(texto);

      this.setVisible(true);

      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
      }});

   }
   public static void main(String[] args) {
   Semaforo x = new Semaforo();
   int mt = x.getSemaforo();
   if(mt == 0){
      new sinal();
	x.setSemaforo(1);
   }else if(mt == 1){
     System.out.print("Este programa ja foi aberto");
     System.exit(0);
   }
   }
}
Arquivo iServer.java
import java.rmi.* ;
public interface iServer extends Remote {
int  getNumero() throws RemoteException; // Saída
void setNumero(int u) throws RemoteException; // Entrada
}
    
Arquivo: server.java
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
public class server extends UnicastRemoteObject implements iServer {
public int s =0;
public server() throws RemoteException{
}
public void getExec(){
  server cal;
  try {
    cal = new server();
    LocateRegistry.createRegistry(1099);
    Naming.bind("rmi:///server", cal);
    System.out.println("Ready !");
  }
  catch (Exception e) {
    /* erro */
  }
}
public int getNumero() throws RemoteException{
return this.s;
}
public void setNumero(int S) throws RemoteException{
this.s = S;
}
}
Arquivo: Semaforo.java
import java.rmi.*;

public class Semaforo {
public Semaforo(){
	try {
server s = new server();
s.getExec();
    }catch (Exception e) {
      e.printStackTrace();
    }
}
public int getSemaforo(){
int t1 = 0;
iServer remoteCal;
    try {
      remoteCal = (iServer) Naming.lookup("rmi:///server");
      t1 = remoteCal.getNumero();
    }catch (Exception e) {
      e.printStackTrace();
    }
return t1;
}
public void setSemaforo(int S){
iServer remoteCal;
    try {
      remoteCal = (iServer) Naming.lookup("rmi:///server");
      remoteCal.setNumero(S);
    }catch (Exception e) {
      e.printStackTrace();
    }
}
}

Enviando e Recebendo dados via Sockets (Parte I)

Comunicação de Computadores utilizando Sockets

Enviando e Recebendo dados via Sockets

Mais Invormação sobre socket basta entrar nesta página.
<<<Clique Aqui>>>

 

Arquivo: chatserver.java
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class chatserver extends Thread
{
  int DEFAULT_PORT=4321;
  protected int port;
  protected ServerSocket server_port;
  protected ThreadGroup CurrentConnections;
  protected Vector connections;
  protected ServerWriter writer;
  private Calendar datatual;

  //Criar um ServerSocket
  public chatserver()
  {
    super("Server");
    this.port=DEFAULT_PORT;
  
    try
    {
      server_port=new ServerSocket(port);
    }
    catch (IOException e)
    {
      System.err.println(e+"Exception");
    }

    //Cria um threadgroup para as conexoes
    CurrentConnections=new ThreadGroup("Server Connections");

    //Mensagem inicial na janela do servidor
    System.out.println("=== Conexoes Realizadas ===");

    //Um vetor para armazenar as conexoes
    connections=new Vector();

    writer=new ServerWriter(this);

    //Inicia o servidor para ouvindo as conexoes
    this.start();
  }

  public void run()
  {
    try
    {
      while(true)
      {
        datatual = Calendar.getInstance();
        Socket cliente_socket=server_port.accept();
        //Exibe na janela do servidor os clientes que conectam (mostra o host
        //do cliente, a porta e a data e hora da conexao
        System.out.println("Host:"+cliente_socket.getInetAddress()+"| Porta:"+
        cliente_socket.getPort()+"| "+datatual.getTime());
        Connection c=new Connection(cliente_socket,CurrentConnections,3,writer);

        //evita o acesso simultaneo
        synchronized(connections)
        {
          //adiciona esta nova conexao a lista
          connections.addElement(c);
        }
      }
    }
    catch(IOException e)
    {
      System.err.println(e+"Exception");
    }
  }

  //Inicia o servidor
  public static void main(String[] args)
  {
    new chatserver();
  }
}

//----------------------------------------------------------------------------
class Connection extends Thread
{
  static int numberOfConnections=0;
  protected Socket client;
  protected DataInputStream in;
  protected PrintStream out;
  protected ServerWriter writer;
 
  public Connection(Socket cliente_socket, ThreadGroup CurrentConnections,
                                             int priority, ServerWriter writer)
  {
    super(CurrentConnections,"Connection number"+numberOfConnections++);
 
    //define a prioridade
    this.setPriority(priority);
    client=cliente_socket;
    this.writer=writer;
    try
    {
      //Atarraxa os streams aos streams de entrada e saida do socket do
      //cliente e adiciona este outputstream ao vetor que contem todos
      //os streams de saida, usados pelo escritor writer
      in=new DataInputStream(client.getInputStream());
      out=new PrintStream(client.getOutputStream());
      writer.OutputStreams.addElement(out);
    }
    catch(IOException e)
    {
      try
      {
        client.close();
      }
      catch (IOException e2)
      {
        System.err.println("Exception while getting socket streams:"+e);
        return;
      }
    }

    //dispara Thread
    this.start();
  }

  //O metodo run faz um laco lendo as mensagens recebidas
  public void run()
  {
    String inline;
  
    //Envia uma mensagem de boas vindas ao cliente
    out.println("Bem vindo ao MiniChat...");
    try
    {
      while(true)
      {
        //le uma linha de mensagem
        inline=in.readLine();
        //A conexao eh interrompida se null

        if (inline==null)
          break;

        //Joga a linha no escritor writer
        writer.setOutdata(inline);

        synchronized(writer)
        {
          //chama o escritor synchronized() para evitar que duas linhas
          //Connection o chamem ao mesmo tempo. Esta e uma forma de "bloqueio".
          writer.notify();
        }
      }
    }
    catch(IOException e)
    {}
    finally
    {
      try
      {
        client.close();
      }
      catch(IOException e2)
      {}
    }
  }
}  

//----------------------------------------------------------------------------
class ServerWriter extends Thread
{
  protected chatserver server;
  public Vector OutputStreams;
  public String outdata;
  private String outputline;
 
  public ServerWriter(chatserver s)
  {
    super(s.CurrentConnections,"Server Writer");
    server=s;
    OutputStreams=new Vector();
    this.start();
  }

  public void setOutdata(String mensagem)
  {
    outdata=mensagem;
  }

  public synchronized void run()
  {
    while(true)
    {
      //A linha faz um laco para sempre, mas na vedade so e executada quando
      //a condicao wait for reinicializada por um notify. Isso num bloco
      //sincronizado para bloquear a linha e evitar o acesso multiplo.
      try
      {
        this.wait();
      }
      catch (InterruptedException e)
      {
        System.out.println("Caught an Interrupted Exception");
      }
      outputline=outdata;
      synchronized(server.connections)
      {
        for (int i=0 ; i<OutputStreams.size() ; i++)
        {
          //Eh impressa a mensagem em cada um OutputStreams.
          PrintStream out;
          out=(PrintStream)OutputStreams.elementAt(i);
          out.println(outputline);
        }
      }
    }
  }
}
Arquivo: clientechat.java
import java.io. * ;
import java.net. * ;
import java.awt. * ;
import java.awt.event. * ;
import javax.swing. * ;
import java.awt.event. * ;

public class clientechat extends JFrame {

    public static final int DEFAULT_PORT = 4321;
    public Socket clisoc;
    private Thread reader;
    public JTextArea OutputArea;
    public JTextField InputArea, nomefield;
    public PrintStream out;
    public String Name;

    //Cria as linhas de leitura e escrita e as inicia.
    public clientechat() {

        super("Cliente Chato");
        this.setSize(320, 460);
        this.setLocation(50, 100);
        this.setResizable(false);

        Container ct = this.getContentPane();
        ct.setLayout(null);

        JLabel xlabel_01 = new JLabel("MiniChat usando conexao (Socket TCP)");
        xlabel_01.setBounds(10, 0, 300, 20);
        ct.add(xlabel_01);

        JLabel xlabel_02 = new JLabel("Nome do usuario");
        xlabel_02.setBounds(10, 20 + 1, 150, 20);
        ct.add(xlabel_02);

        nomefield = new JTextField("");
        nomefield.setBounds(10, 20 * 2 + 1, 150, 20);
        ct.add(nomefield);

        OutputArea = new JTextArea("");
        OutputArea.setBounds(10, 20 * 3 + 10, 300, 300);
        ct.add(OutputArea);

        JLabel xlabel_03 = new JLabel("Digite uma mensagem e pressione ENTER");
        xlabel_03.setBounds(10, 20 * 4 + 1 + 300, 300, 20);
        ct.add(xlabel_03);

        InputArea = new JTextField("");
        InputArea.setBounds(10, 20 * 5 + 1 + 300, 300, 20);
        ct.add(InputArea);

        Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif");
        setIconImage(Icone);

        this.setVisible(true);

        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        InputArea.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent tecla) {
                int c = tecla.getKeyCode();

                if (c == KeyEvent.VK_ENTER)
                //Vigia se o usuario pressiona a tecla ENTER.
                //Isso permite saber a mensagem esta pronta para ser enviada!
                {
                    String InLine = InputArea.getText();
                    Name = nomefield.getText();
                    out.println(Name + ">" + InLine);
                    InputArea.setText("");
                    //Envia a mensagem, mas adiciona o nome do usuario a ela para que os
                    //outros clientes saibam quem a enviou.
                }
            }
        });
        try {
            //Cria um socket cliente passando o endereco e a porta do servidor
            clisoc = new Socket("127.0.0.1", DEFAULT_PORT);
            reader = new Reader(this, OutputArea);
            out = new PrintStream(clisoc.getOutputStream());
            //Define prioridades desiguais para que o console seja compartilhado
            //de forma efetiva.
            reader.setPriority(3);
            reader.start();
        } catch (IOException e) {
            System.err.println(e);
        }
    }

    public static void main(String[] args) {
        new clientechat();
    }
}

//----------------------------------------------------------------------------
//A classe Reader le a entrada do soquete e atualiza a OutputArea com as
//novas mensagens.
class Reader extends Thread {
    protected clientechat cliente;
    private JTextArea OutputArea;
    public Reader(clientechat c, JTextArea OutputArea) {
        super("chatclient Reader");
        this.cliente = c;
        this.OutputArea = OutputArea;
    }

    public void run() {
        DataInputStream in = null;
        String line;
        try { in = new DataInputStream(cliente.clisoc.getInputStream());
            while (true) {
                line = in .readLine();
                //Adiciona a nova mensagem a OutputArea
                OutputArea.append(line + "\r\n");
            }
        } catch (IOException e) {
            System.out.println("Reader:" + e);
        }
    }
}

Enviando e Recebendo dados via Socket (Parte II)

Enviando e Recebendo dados via Socket

Arquivo: ServidorDatagrama.java
import java.io.*;
import java.net.*;

public class ServidorDatagrama
{
  public static void main(String[] args)
  {
    DatagramSocket socket=null;
    DatagramPacket recvPacket, sendPacket;
    try
    {
      System.out.println("=== Servidor de eco no ar !!! ===");
      socket=new DatagramSocket(4545);
      while(socket!=null)
      {
        recvPacket=new DatagramPacket(new byte[512], 512);
        socket.receive(recvPacket);
        sendPacket=new DatagramPacket(recvPacket.getData(), recvPacket.getLength(),
                                  recvPacket.getAddress(), recvPacket.getPort());
        socket.send(sendPacket);
        System.out.println("Mensagem recebida do Cliente: "+recvPacket.getAddress()+
                                                        ":"+recvPacket.getPort());
        System.out.print("=> ");
        System.out.write(recvPacket.getData(),0,recvPacket.getLength());
        System.out.print("\r\n");
        System.out.print("\r\n");
      }
    }
    catch(SocketException se)
    {
      System.out.println("Erro no ServidorDatagrama: "+se);
    }
    catch(IOException ioe)
    {
      System.out.println("Erro no ServidorDatagrama: "+ioe);
    }
  }
}
Arquivo: ClienteDatagrama.java
import java.io.*;
import java.net.*;

public class ClienteDatagrama
{
  private DatagramSocket socket=null;
  private DatagramPacket recvPacket, sendPacket;
  public static void main(String[] args)
  {
    DatagramSocket socket=null;
    DatagramPacket recvPacket, sendPacket;
    try
    {
      socket=new DatagramSocket();
      InetAddress hostAddress=InetAddress.getByName("127.0.0.1");
      DataInputStream userData=new DataInputStream(System.in);
      while (socket !=null)
      {
        //leitura da mensagem para enviar para o servidor Datagrama
        System.out.print("Mensagem para enviar: ");
        String userString=userData.readLine();
        if ((userString==null)||(userString.equals("")))
          return;
   
        //converte o String para um Array de bytes
        byte sendbuf[]=new byte[userString.length()];
        userString.getBytes(0,userString.length(),sendbuf,0);
        sendPacket=new DatagramPacket(sendbuf, sendbuf.length, hostAddress, 4545);
  
        //envia o Datagrama para o servidor
        socket.send(sendPacket);
  
        //recebe o Datagrama do servidor
        recvPacket=new DatagramPacket(new byte[512], 512);
        socket.receive(recvPacket);
  
        //exibe na tela do cliente a mensagem de eco do servidor Datagrama
        System.out.print("Mensagem recebida (eco): ");
        System.out.write(recvPacket.getData(),0,recvPacket.getLength());
        System.out.print("\r\n");
        System.out.print("\r\n");
      }
    }
    catch(SocketException se)
    {
      System.out.println("Erro no ClienteDatagrama: "+se);
    }
    catch(IOException ioe)
    {
      System.out.println("Erro no ClienteDatagrama: "+ioe);
    }
  }
}