Introdução ao Swing (parte 1)

Breve descrição de como criar uma janela utilizando a API javax.swing.*. Destina-se a pessoas iniciantes com pouca experiência em Java e que querem partir diretamente para programação de sistemas em ambiente de janelas (Window, X-Window, MacOsX, entre outros).

[ Hits: 31.781 ]

Por: Denny Richard San Vriesman em 17/02/2004


Criando uma janela



Como o Java é uma linguagem 100% orientada à objetos, é necessário criar ao menos uma classe, esta classe será a base da janela e conterá a entrada (método main) da aplicação:

//Definição da classe
public class MinhaJanela {

    //Entrada do programa
    public static void main(String args[]) {

            //Instância objeto p da classe MinhaJanela
            MinhaJanela p = new MinhaJanela();
    }

}

Como visto, o código acima é básico, é simplesmente uma classe com um método main. Para tornar esta classe uma janela, basta incluir no código fonte a diretiva para importação do pacote java.swing.JFrame e estender essa classe com as funcionalidades da classe JFrame:

//Importa a classe JFrame
import java.swing.JFrame;

//Definição da classe extendendo de JFrame
public class MinhaJanela extends JFrame {

    //Entrada do programa
    public static void main(String args[]) {

            //Instância objeto p da classe MinhaJanela
            MinhaJanela p = new MinhaJanela();
            p.setTitle("Minha primeira Janela");
            p.setSize(100,100);
            p.show();
    }
}

Os métodos setTitle, setSize e show são métodos da classe JFrame.

Concluo aqui meu pontapé inicial para o mundo do Swing, sugiro que os interessados estudem todos os métodos da classe JFrame (um guia da API Swing pode ser encontrado no site java.sun.com), pois em breve vou postar um novo artigo mostrando como inserir botões, menus e demais componentes aplicáveis a telas.

[]´s
Denny R S Vriesman

Página anterior    

Páginas do artigo
   1. O Swing
   2. Criando uma janela
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Manipulando erros com try catch finally

Máquina Virtual Java (Java Virtual Machine)

Programação orientada a objetos e o Java (parte 4)

Programação orientada a objetos e o Java (parte 5)

Java no Ubuntu 12.04 - Instalação à moda antiga

  
Comentários
[1] Comentário enviado por fabio em 17/02/2004 - 21:13h

Olá Denny,

Em primeiro lugar, parabéns pelo artigo, o assunto é bastante interessante. Porém, por se tratar do primeiro artigo de uma série, achei que faltaram alguns detalhes básicos que restringem o texto somente para leitores que já possuem experiência com o Swing e nesse caso já saberiam como fazer para criar uma janela.

Digo isso porque em momento algum foi mencionada alguma referência para algum lugar onde se possa fazer o download do Swing. Em minha primeira busca também não encontrei a URL. Já que não está sendo abordada a instalação do Swing, que pelo menos a URL do site oficial seja mencionada para facilitar nossa vida :)

Outra coisa, se você conhece o endereço do tutorial que há no site da Sun, poderia passar pra gente, pois somente o endereço do site da Sun fica meio superficial, visto que existem centenas de tutoriais espalhados por lá.

O tópico está bacana, só estou fazendo uma crítica construtiva com relação ao nível de detalhamento, que tenho certeza que estará melhor no próximo artigo.

[]'s

[2] Comentário enviado por fabio em 17/02/2004 - 21:15h

Ah, e claro. Temos o código-fonte citado no artigo, como fazemos para compilar o mesmo na ferramenta? Onde será copiado este código? Só quem já conhece o Swing que conhece estes atalhos. :P

[3] Comentário enviado por ygorth em 17/02/2004 - 23:22h

Bom artigo, porem limitado por demais... espero ler o proximo!

[4] Comentário enviado por kalashinikov em 18/02/2004 - 01:15h

Não sei se estou querendo d+, mas apenas pra efeito de entendimento.

1) para programação visual, você poderia indicar uma ferramenta, tal como as jbuilder (for linux) e NetBeans, instalação e configuração. ligações com banco de dados Mysql / Postgresql.

2) explicar a criação de uma tela.

3) Explicar como usar objetos , de diagramas criados em UML (Umbrello / ArgoUML) e implementá-los em uma tela (form).


Ficaria com bastante conteúdo e atenderia vários níveis de usuários.

Ass: Kalashinikov

[5] Comentário enviado por vriesman em 18/02/2004 - 10:48h

Pessoal,

Agradeço pelas criticas e sugestões.
Com certeza esse artigo poderia estar muito melhor, mas como é o meu primeiro artigo e foi escrito na correria (hora do almoço), foi o que deu pra fazer.
Com certeza no próximo artigo eu vou utilizar todas as sugestões apresentadas. E vou escrever com mais calma e profissionalismo.
Minha intensão inicial era verificar também, se alguém iria se interessar pelo assunto... já que vcs se pronunciaram, tenho o dever de continuar os artigos com mais capricho !

Agradeço mais uma vez ao Kalashinikov, ControlC e Fabio pelas dicas !

ats

Denny R S Vriesman





[6] Comentário enviado por vriesman em 18/02/2004 - 15:05h

Fabio,

Não é necessário baixar o swing, basta ter o SDK Java, pois o swing faz parte da api padrão do java. Para compilar, não existe nada especial também, compila-se como qualquer outra aplicação java.
Minha visão inicial do tutorial era que o leitor já tivesse conhecimentos básicos de java. Mas na próximo artigo irei abortar esses assuntos que não se referem ao swing diretamente.

ats

Denny R S Vriesman

[7] Comentário enviado por fabio em 18/02/2004 - 15:15h

Valeu Denny! É que em minha primeira impressão achei que o Swing fosse uma dessas APIs para o Java, esclarecido.

[8] Comentário enviado por hackwiz em 23/02/2004 - 17:46h

Fábio, pegue o código (nao testei) cole em qq editor de texto e salve como:

MinhaJanela.class

e depois é só executar assim:

java MinhaJanela

[9] Comentário enviado por hackwiz em 23/02/2004 - 17:48h

Erro, nao salve como MinhaJanela.class e sim MinhaJanela.java, o .class será gerado depois da execução :-)

[10] Comentário enviado por gustavo_marcon em 12/04/2004 - 20:25h

Notei um erro no seu programa, é o seguinte, ao invéz de java.swing.JFrame , o correto é javax.swing.JFrame, só notei isso quando tentei compilar, e ao trocar isso, o programa rodou normalmente.

[11] Comentário enviado por coronel em 21/05/2004 - 14:43h

também tive esse problema, o correto é javax mesmo..
mas legal o artigo..
abraço

[12] Comentário enviado por Celo em 01/06/2004 - 16:01h

achei massa, mas como faço para essa janela aparecer centralizada?

[13] Comentário enviado por helsen em 01/05/2005 - 20:46h

Faltou só o javax, mas gostei do artigo, basico, direto, realmente a melhor forma de aprender é ler o manual oficial.

[14] Comentário enviado por removido em 13/06/2005 - 10:29h

Olá vriesman!!! Estive lendo seu artigo e achei bastante interessante a objetividade com que você abordou o assunto, mesmo visivelmente tendo escrito com pressa e tendo faltado alguns detalhes importantes, normal pro primeiro artigo hehe. Um professor me passou um trabalhinho na faculdade para fazer uma aplicação usando swing que dada um equação de segundo grau e alguns pontos desenhasse o gráficp...até aí tudo bem , mas o detalhe é que ele vem ensinando java sem nunca ter mencionada orientação à objeto e eu, como programador c iniciante, tenho tido muitas dificuldades para assimilar a idéia. Bom.., ao ver, nos comentarios que tantas pessoas tem se interesado por java eu somente gostaria de sugerir que você escrevesse um artigo com essa mesma objetividade mas dessa vez abordando, além da aplicação do swing, noções de orientação a objeto e suporte para essa transição d ec para java (se possível hehe). Mas gostei do artigo e estou aguardando a segunda parte... abraço!

[15] Comentário enviado por naraliegi em 18/08/2008 - 14:55h

Denny,tô começando com JAVA agora e gostaria de saber com qual compilador posso trabalhar no ubuntu 7.04 pois tentei baixar o eclipse mais não funcionou...
Ah... O artigo estava ótimo so faltava um pouco mais de detalhamento.
Nara Liegi.

[16] Comentário enviado por Karma em 19/09/2008 - 14:26h

primeiramente parabens ai pelo post cara! vou contribuir aí com a galera com algumas coisas...

vou demonstrar uma janela com um botão que ao clicar, fecha a janela:
-----------------------------
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

public class Janela extends JFrame implements ActionListener{ //O ActionListener é o responsável por indentificar o click no botão...

JButton b1; //declarei uma variável do tipo botão

Janela(){
setTitle("Viva o JavaLinux!"); //muda o titulo.
setResizable(true); //true = janela redimensionavel; false = janela não redimensionavel;
setBounds(300,300,300,300); //Os primeiros dois numeros = posição na tela; Os segundos = largura e altura da janela;
getContentPane().setLayout(new FlowLayout(1)); //novo layout pra janela... flowlayout centralizando tudo.

b1 = new JButton("SAIR"); //criando o botão e atribuindo um texto a ele;
b1.addActionListener(this); //registrando ação para ele, quando clicado resulta em uma ação;
add(b1); //adicionar o botao b1 na janela;
}

public void actionPerformed(ActionEvent e){ //esse método é o que diz o que o botao vai fazer

if(e.getSource() == b1) { //se o botao pressionado for o b1

System.exit(0); //finaliza o programa;

}
}

public static void main(String args[]){ //classe main que realiza tudo

JFrame janela = new Janela(); //cria um objeto janela com os atributos definidos acima
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //diz o que acontece quando o 'x' da janela é apertado, nesse caso fecha a janela
janela.setVisible(true); // torna a janela visivel... false = janela em modo stealth (invisivel);
}

--------------------------------------------

é isso ai galera... JAVA parece dificil mas é tranquilo e muito legal de aprender!








[17] Comentário enviado por vriesman em 05/11/2013 - 13:35h

Pessoal, peço desculpas a todos, pois desde 2004 até agora não escrevi a parte II desse tutorial :)
Como swing é coisa do passado, não vou perder tempo escrevendo também, se tiverem interesse em Java Desktop sugiro profundamente que aprendam SWT.
Meu e-mail está atualizado e qualquer dúvida, não hesitem em questionar: dvriesman@gmail.com



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts