Java como aplicativo |
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 |
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.
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 |
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(); } } |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JButton Nome_do_botao; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); 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"); this.setVisible(true); Nome_do_botao.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } |
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 |
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+")"); } } |
Este é o comando mais usado para digitação de um campo de texto.
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JTextField Nome_do_campo; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); Nome_do_campo = new JTextField("Digite seu texto"); Nome_do_campo.setBounds(50,10,150,20); ct.add(Nome_do_campo); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); Nome_do_campo.addKeyListener(new KeyAdapter() { } |
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 |
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(); } } |
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 |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JLabel texto; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); texto = new JLabel("Este é o meu primeiro programa"); texto.setBounds(50,10,200,20); ct.add(texto); botao = new JButton("Teste"); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); botao.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } |
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 |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JLabel label; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); label = new JLabel("<html><div style='background-color:#CCFF00'>Passe o mouse aqui</div></html>"); ct.add(label); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); this.addWindowListener(new WindowAdapter() { } |
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.*; public class JavaTeste extends JFrame { private JTextArea area_texto; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); area_texto = new JTextArea("Digite seus comentários"); // define a quebra de linha automática JScrollPane barra_de_rolagem = new JScrollPane(area_texto); barra_de_rolagem.setBounds(50,10,150,100); ct.add(barra_de_rolagem); texto = new JLabel(""); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); area_texto.addKeyListener(new KeyAdapter() { this.addWindowListener(new WindowAdapter() { } |
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
|
JScrollPane barra_de_rolagem = new JScrollPane(area_texto); | JScrollPane | Coloca uma barra de rolagem na área de texto |
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:
|
botoes.setBounds(50,10,150,Altura); | Altura = 20 |
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
|
negrito.setBounds(50,10,150,Altura); | Altura = 20 |
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(); } } |
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 |
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 |
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 |
b) Caixa para escrever
Esta caixa insere algum texto dentro da página html.
Exemplo: |
String Texto = JOptionPane.showInputDialog("Digite\nseu\ntexto\naqui!"); |
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) { |
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 |
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(); } } |
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(); } } |
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:
É 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(); } } |
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 // ============================ }}); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); painel.setLayout(null); JLabel label_1 = new JLabel("<html><font face='Courier New'>Tipo de Fonte</font></html>"); JLabel label_2 = new JLabel("<html><div style='font-size: 15px'>Tamanho da Fonte</div></html>"); JLabel label_3 = new JLabel("<html><font color='blue'>Cor da Fonte</font></html>"); JLabel label_3rgb = new JLabel("<html><div style='color: rgb(125, 32, 155)'>Cor da Fonte (rgb)</div></html>"); JLabel label_4 = new JLabel("<html><div style='background-color: yellow'>Cor de Fundo</div></html>"); JLabel label_5 = new JLabel("<html><b>Negrito</b></html>"); JLabel label_6 = new JLabel("<html><i>Itálico</i></html>"); JLabel label_7 = new JLabel("<html><u>Sublinhado</u></html>"); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); this.addWindowListener(new WindowAdapter() { } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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. |
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 filtro2 = new ExampleFileFilter(); 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 int res = fc.showOpenDialog(null); if(res == JFileChooser.APPROVE_OPTION){ |
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; } |
<< Link para o código fonte |
Arquivo: JavaTeste.java |
import javax.swing.*; import javax.swing.table.TableColumn; public class JavaTeste extends JFrame { private JButton botao_1; boolean booleano = true; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); TABELA = new JTable(); // Adicionando os dados dtm.addRow(new Object[]{"", "João", "235", "www@web.com","Masculino"}); // Ordenando tabelas // inserindo caixa de combos na tabela JComboBox comboBox = new JComboBox(); // Inserindo barras de rolagens na 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.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"); botao_1.addActionListener(new ActionListener() { // Adicionar linha dtm.addRow(new Object[]{"","","","",""}); }}); botao_2.addActionListener(new ActionListener() { // Remover linha int [] linhaSelecionada = TABELA.getSelectedRows(); try { }}); botao_3.addActionListener(new ActionListener() { // Editar celula }}); botao_4.addActionListener(new ActionListener() { // Ler celula }}); botao_5.addActionListener(new ActionListener() { // Esticar tabela // modulo de esticamento da coluna // almentar a largura de uma das coluna booleano = false; }}); botao_6.addActionListener(new ActionListener() { // 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:"); }}); botao_7.addActionListener(new ActionListener() { // almentar a largura de uma das coluna TABELA.getColumnModel().getColumn(1).setPreferredWidth(Integer.parseInt(largura)); TABELA.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); }}); botao_8.addActionListener(new ActionListener() { // Número de linhas }}); botao_9.addActionListener(new ActionListener() { // Número de colunas }}); botao_10.addActionListener(new ActionListener() { // Nome da coluna }}); botao_11.addActionListener(new ActionListener() { // Linhas Selecionadas javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)TABELA.getModel(); int [] linhaSelecionada = TABELA.getSelectedRows(); for(int i = (linhaSelecionada.length-1); i >= 0; --i) { botao_12.addActionListener(new ActionListener() { // Mudando a fonte com o 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>"); }}); botao_13.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } |
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(); } } |
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); } } }; } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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 |
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. } }}); } } |
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(); } } |
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(); } } |
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 // =========================== } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
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(); } } |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JTextArea area_texto; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); area_texto = new JTextArea("Digite seus comentários"); select_texto = new JButton("Selecionar texto"); alter_texto_select = new JButton("Alterar texto selecionado"); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); this.setVisible(true); select_texto.addActionListener(new ActionListener() { }}); alter_texto_select.addActionListener(new ActionListener() { int x = area_texto.getSelectionStart(); area_texto.setText(texto); this.addWindowListener(new WindowAdapter() { } |
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(); } } |
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(); } } |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { private JTextField teclado; public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); resultado = new JLabel(""); this.setVisible(true); teclado.addKeyListener(new KeyAdapter() { java.awt.Toolkit t = java.awt.Toolkit.getDefaultToolkit(); if(t.getLockingKeyState(KeyEvent.VK_NUM_LOCK) == true) if(t.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK) == true) if(t.getLockingKeyState(KeyEvent.VK_CAPS_LOCK) == true) result += TeclaEvento(codigo); result += TeclaChar(caracter); result += "</html>"; }}); btCapsLock.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } String x = ""; if(codigo == KeyEvent.VK_0) { x += "<br>KeyEvent.VK_0";} // ============================== if(codigo == KeyEvent.VK_MINUS) { x += "<br>KeyEvent.VK_MINUS";} // tecla - if(codigo == KeyEvent.VK_DEAD_TILDE) { x += "<br>KeyEvent.VK_DEAD_TILDE";} // tecla ~ if(codigo == KeyEvent.VK_OPEN_BRACKET) { x += "<br>KeyEvent.VK_OPEN_BRACKET";} // tecla [ if(codigo == KeyEvent.VK_COMMA) { x += "<br>KeyEvent.VK_COMMA";} // tecla , return x; } case '@': x += "tecla = @"; break; |
VK_0 VK_A |
VK_NUM_LOCK |
VK_ESCAPE VK_SHIFT VK_DELETE VK_PRINTSCREEN VK_DOWN |
VK_F1 |
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 |
US English QWERTY
Teclado abnt brasileiro
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 |
Arquivo: JavaTeste.java |
import javax.swing.*; public class JavaTeste extends JFrame { public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); imprimirTxt j1 = new imprimirTxt(); imprimirHtml j2 = new imprimirHtml(); imprimirGrafico j3 = new imprimirGrafico(); js1 = new JButton("Imprimir txt"); js2 = new JButton("Imprimir Html"); js3 = new JButton("Imprimir Gráfico"); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); // Deixa a janela visível js1.addActionListener(new ActionListener() { js2.addActionListener(new ActionListener() { js3.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } import javax.swing.*; public class JavaTeste extends JFrame { public JavaTeste() { super("Formulario"); Container ct = this.getContentPane(); imprimirTxt j1 = new imprimirTxt(); imprimirHtml j2 = new imprimirHtml(); imprimirGrafico j3 = new imprimirGrafico(); js1 = new JButton("Imprimir txt"); js2 = new JButton("Imprimir Html"); js3 = new JButton("Imprimir Gráfico"); Image Icone = Toolkit.getDefaultToolkit().getImage("icon.gif"); // Deixa a janela visível js1.addActionListener(new ActionListener() { js2.addActionListener(new ActionListener() { js3.addActionListener(new ActionListener() { this.addWindowListener(new WindowAdapter() { } |
Arquivo imprimirTxt.java |
import javax.swing.JTextArea; import java.io.Serializable; public JTextArea t; public imprimirTxt() { public JTextArea printTexto() { t.setLineWrap(true); } |
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 JTextPane t; public imprimirHtml() { public JTextPane printTexto() { } |
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; public class imprimirGrafico extends JPanel{ public imprimirGrafico() { public void paintComponent(Graphics g){ } |
Arquivo: pPrintGrafico.java |
import java.awt.geom.*; public class pPrintGrafico implements Printable { public pPrintGrafico() { /* if (services.length > 0) { /** if (pageIndex == 0) { Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.blue); return Printable.PAGE_EXISTS; |
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.io.*; import javax.imageio.*; import java.io.Serializable; Toolkit toolkit = Toolkit.getDefaultToolkit(); //depois disso é só procurar a imagem no local indicado abaixo, no meu caso em: } |
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(); } } |
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; } } |
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(); } } |
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; } } |
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(); } } |
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();
}
}
|
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(" |
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: |
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(); } } } |
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); } } } |
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); } } } |