java swing: parte 7

Discussão em 'Dicas e tutoriais' iniciado por kodo no kami, 30 Setembro 2017.

  1. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    229
    Sexo:
    Masculino
    Avaliações:
    +303 / -0
    então galera essa é a setima parte do nosso tutorial de swing em java, e nela vamos aprender a criar uma barra de progresso. para começar a gente cria uma janela basica

    Código (Forge Crash):
    package kodo;

    import javax.swing.*;

    public class Principal {
      private static JFrame janela;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
      }
    }
    [​IMG]

    para criar uma barra de progresso temos que instanciar um objeto do tipo JProgressBar (javax.swing.JProgressBar)

    Código (Forge Crash):
    package kodo;

    import javax.swing.*;

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
      }
    }
    como o nosso layout é absoluto temos que especificar o tamanho e a posição dela usando o metodo setBounds, tambem adicionamos ela na janela usando o metodo add da janela

    Código (Forge Crash):
    package kodo;

    import javax.swing.*;

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
       
       barra.setBounds(10,10,320,30);
       
       janela.add(barra);
      }
    }
    [​IMG]

    para a gente especificar o progresso da nossa barra usamos o metodo setValue (podemos usar o metodo getValuep para pegar o valor), nele passamos como argumento um valor de 0 a 100 (sendo 0 o valor vazio e o 100 ela toda cheia)

    Código (Forge Crash):
    package kodo;

    import javax.swing.*;

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
       
       barra.setBounds(10,10,320,30);
       barra.setValue(70);
       
       janela.add(barra);
      }
    }
    [​IMG]

    a barra de progresso pode ser usada para indicar o começa e o fim de algum evento ou ação, um exemplo de um botao que permuta um numero de 0 a 100 incrementado 10 em 10 e exibindo na barra de progresso

    Código (Forge Crash):
    package kodo;

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

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
      private static JButton botao;
      private static int valorprogresso = 0;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       botao = new JButton("add");
       
       ActionListener acao = new ActionListener() {  
        @Override
        public void actionPerformed(ActionEvent e) {
         valorprogresso += 10;
         barra.setValue(valorprogresso);
        }
       };
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
       
       barra.setBounds(10,10,320,30);
       
       botao.setBounds(10,50,100,100);
       botao.addActionListener(acao);
       
       janela.add(botao);
       janela.add(barra);
      }
    }
    [​IMG]

    podemos mudar a cor da barra de progresso e do fundo usando o metodo setForeground e setBackground

    Código (Forge Crash):
    package kodo;

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

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
       
       barra.setBounds(10,10,320,30);
       barra.setForeground(Color.red);
       barra.setBackground(Color.gray);
       barra.setValue(20);
       
       janela.add(barra);
      }
    }
    [​IMG]

    podemos escrever uma string na barra de progresso, para fazer isso usamos o metodo setString e para habilitar setamos true para o metodo setStringPainted

    Código (Forge Crash):
    package kodo;

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

    public class Principal {
      private static JFrame janela;
      private static JProgressBar barra;
       
      public static void main(String[] args){
       janela = new JFrame("minha janela");
       barra = new JProgressBar();
       
       janela.setBounds(400,350,350,200);
       janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
       janela.setVisible(true);
       janela.setLayout(null);
       
       barra.setBounds(10,10,320,30);
       barra.setValue(30);

       barra.setString("by kodo no kami");
       barra.setStringPainted(true);
       
       janela.add(barra);
      }
    }
    [​IMG]

    então é isso galerinha ate a proxima parte desse tutorial ^^

    by kodo no kami
     
    • Gostei Gostei x 2
    • Útil Útil x 1
  2. Lucas_Gamer13
    Online

    Lucas_Gamer13 Veterano Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    17 Novembro 2015
    Mensagens:
    1,704
    Sexo:
    Masculino
    Avaliações:
    +1,608 / -0
    Apelido no Minecraft:
    Lucas_gamer13
    Gostei! Mas existem também o WindowBuilder que usa no eclipse que da pra criar essas janelas mais facilmente:
    [​IMG]

    Seria legal você fazer um tutorial dele, tipo ensinando a fazer um programa com login e senha, etc

    OBS: Área de trabalho TOP!
     
    • Concordo Concordo x 2
  3. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    229
    Sexo:
    Masculino
    Avaliações:
    +303 / -0
    windowbuilder é sempre bom usar mano, facilita muito nos projetos \o
     
  4. Lucas_Gamer13
    Online

    Lucas_Gamer13 Veterano Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    17 Novembro 2015
    Mensagens:
    1,704
    Sexo:
    Masculino
    Avaliações:
    +1,608 / -0
    Apelido no Minecraft:
    Lucas_gamer13
    Você podia fazer um tutorial de como fazer um loop e atualizar dados na tela em tempo real... To tendo um problema com as janelas em java. Sempre que eu uso um while a tela não aparece ate o while acabar...
     
  5. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,872
    Sexo:
    Masculino
    Avaliações:
    +641 / -0
    Apelido no Minecraft:
    armelin1
  6. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    229
    Sexo:
    Masculino
    Avaliações:
    +303 / -0
    nesse caso tera que criar thread para cada while do codigo para ser executado de forma paralela

    threads em java | GameMods
     
    • Informativo Informativo x 1

Compartilhe esta Página