Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhando com janelas com o Swing


Norivan Oliveira

Pergunta

Boa tarde a todos, seguindo meus tutoriais básicos e objetivos de Java, vamos agora brincar um pouco com interface gráfica. Vamos criar algumas janelas usando o Swing e brincar um pouco com as propriedades delas:

Requisitos

1. JRE e JDK instaladas. Caso não tenha clique aqui

2. Qualquer editor que colori o código para você. Pode ser até o Notepad, mas não recomendo. Caso não tenha um clique aqui

Bom, Swing é um pacote que contém uma serie de componentes visuais do Java, ele vem do AWT, que... e... e mais um blah blah blah que parece romance de Shakespeare...

O importante é você saber que Swing é um componente e se você vai usar qualquer coisa dele você tem que importar/incluir ele para sua classe usando import

import javax.swing.*;
Após importar esse pacote você poderá utilizar tudo que tem dentro dele. A partir dai podemos trabalhar com janelas, que é o tema deste tópico, construindo elas é setando as propriedades delas, é tão facil como controlar tags html através de css só que o jeito de escrever é totalmente diferente e tem maiores "funcionalidades". Quando você estiver trabalhando com Swing você pode entender a palavra janela como JFrame. Janela simples 1.Abra o seu editor 2.Importe os componentes do Swing
import javax.swing.*; //Importa todos os pacotes gráficos do swing
3.Inicie uma classe
public class JFrame_simples extends JFrame { // aplicativo

        
    }
4.Extenda ela do componente JFrame que vem lá daquele pacote javax.swing que você importou
public class JFrame_simples extends JFrame { // aplicativo

        
    }
5.Crie um metodo construtor com o mesmo nome da sua classe
public JFrame_simples() {
        
        
    }
6."Herde o conteudo" JFrame com um super e altere o nome da janela
public JFrame_simples() {

                super("janela teste"); //define o titulo da aplicação
        
    }
7.Insira as proriedades basicas da janela, ou seja tamanho e visibilidade
public JFrame_simples() {
        
        super("janela teste"); //define o titulo da aplicação
        
        setSize(300,300);
        setVisible(true);
        
    }
8.Construa um metodo main para iniciar a aplicação
public static void main(String args[]){
        
        
    }
9.Chame sua classe (aplicação) dentro do metodo main
public static void main(String args[]){
        
        JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.

    }
10.Defina como a aplicação irá se comportar quando alguém tentar fechar ela
public static void main(String args[]){
        
        JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
Pronto, no final o código fica assim:
public class JFrame_simples extends JFrame { // aplicativo

    // Metodo construtor, que constroi a janela
    public JFrame_simples() {
        
        super("janela teste"); //define o titulo da aplicação
        
        setSize(300,300);
        setVisible(true);
        
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
// junin
    
}
Agora vamos testar: 1.Salve como JFrame_simples.java em C:/ 2.Abra o cmd, navegue até o c:/ e digite javac JFrame_simples.java Deu pau?! E agora José??? Identificação de erros é uma das, se não a, parte mais importante de se programar em Java. Você deve ter se assustado com o tamanho da msg de erro que apareceu, mas não se preocupe, essa é pequena tem StackTrace (msg de erro) que dão medo até nos mortos. Mas o importante normalmente é curtinho, nesse caso é só isso aqui
JFrame_simples.java:11: cannot find symbol symbol: class JFrame
O interpretador tá dizendo que não encontrou o simbolo JFrame, na linha
public class JFrame_simples extends JFrame {
Isso porque não importamos o swing no nosso código, para usar qualquer coisa do swing, temos que importar o swing. Então vamos lá:
import javax.swing.*;
        
    public class JFrame_simples extends JFrame { // aplicativo
    
        // Metodo construtor, que constroi a janela
        public JFrame_simples() {
            
            super("janela teste"); //define o titulo da aplicação
            
            setSize(300,300);
            setVisible(true);
            
        }
        
        // Main: chama a janela iniciando a aplicação
        
        public static void main(String args[]){
            
            JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
            app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
            
            /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
             * DO_NOTHING_ON_CLOSE = Não fecha
             * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
             * EXIT_ON_CLOSE = fecha normal
             */
            
        }
        
        
    }
Compile denovo (javac) Digite java -cp c:; JFrame_simples janeladb4.jpg Propriedades de comportamento da janela Agora vamos brincar com algumas propriedades para abertura e personalizacao de janelas Janela maximizada/minimizada
import javax.swing.*; //Importa todos os pacotes gráficos do swing

public class JFrame_centralizado extends JFrame { // aplicativo

    // Metodo construtor, que constroi a janela
    public JFrame_centralizado() {
        
        super("janela teste"); //define o titulo da aplicação
        
        setSize(300,300); // define o tamanho
        setVisible(true); /// define se a janela é vissivel
        setLocationRelativeTo(null);
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_centralizado app = new JFrame_centralizado(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
    
}
Janela com tamanho fixo
import javax.swing.*; //Importa todos os pacotes gráficos do swing

public class JFrame_fixo extends JFrame { // aplicativo

    // Metodo construtor, que constroi a janela
    public JFrame_fixo() {
        
        super("janela teste"); //define o titulo da aplicação
        
        setSize(300,300); // define o tamanho
        setVisible(true); /// define se a janela é vissivel
        setResizable(false); // define que o tamanho da janela não pode ser alterado
        
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_fixo app = new JFrame_fixo(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
    
}
Janela centralizada
import javax.swing.*; //Importa todos os pacotes gráficos do swing

public class JFrame_centralizada extends JFrame { 

    // Metodo construtor, que constroi a janela
    public JFrame_centralizada() {
        
        super("janela teste"); //define o titulo da aplicação
        
        
        setSize(300,300); // define o tamanho
        setVisible(true); // define se a janela é vissivel
        setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_centralizada app = new JFrame_centralizada(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
    
}
Janela com cor de fundo
import javax.swing.*; //Importa todos os pacotes gráficos do swing
import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt

public class JFrame_background extends JFrame { 

    // Metodo construtor, que constroi a janela
    public JFrame_background() {
        
        super("janela teste"); //define o titulo da aplicação
        
        Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container
        janela.setBackground(Color.black); // seta a propriedade do container janela
        /* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */
        
        setSize(300,300); // define o tamanho
        setVisible(true); // define se a janela é vissivel
        setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_background app = new JFrame_background(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
    
}
Janela com icone personalizado
import javax.swing.*; //Importa todos os pacotes gráficos do swing
import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt

public class JFrame_icone extends JFrame { 

    // Metodo construtor, que constroi a janela
    public JFrame_icone() {
        
        super("janela teste"); //define o titulo da aplicação
        
        Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container
        janela.setBackground(Color.black); // seta a propriedade do container janela
        /* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */
        
        ImageIcon icone = new ImageIcon("img/icone.png"); // seta o icone a ser usado
        setIconImage(icone.getImage());
        
        setSize(300,300); // define o tamanho
        setVisible(true); // define se a janela é vissivel
        setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
    }
    
    // Main: chama a janela iniciando a aplicação
    
    public static void main(String args[]){
        
        JFrame_icone app = new JFrame_icone(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
        
        /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
         * DO_NOTHING_ON_CLOSE = Não fecha
         * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
         * EXIT_ON_CLOSE = fecha normal
         */
        
    }
    
    
}

Bom por enquanto é isso pessoal, quem quiser pode baixar os exemplos em anexo

Java.rar

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...