Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.


Você não está conectado. Conecte-se ou registre-se

[tutorial] java swing: parte 6

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [tutorial] java swing: parte 6 em 1/10/2017, 23:11

bom galerinha continuando o tutorial de swing em java (sei que to devendo dois tuto para dois manos um de extensão do chrome e outro de requisição em perl com metodo post via socket, ainda vou fazer eles \o), bom galera nessa parte vamos aprender a criar checkbox e radiobutton, para começar a gente cria uma janela basica como de costume

Código:
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);
    }
}



vamos começar com checkbox que são caixas onde podemos selecionar uma opção, para criar uma checkbox a gente instancia um objeto do tipo JCheckBox (javax.swing.JCheckBox), podemos inclusive passar uma string para ela que sera o texto que vai ser exibido

Código:
package kodo;

import javax.swing.*;

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

a nossa janela tem um layout absoluto então precisamos especificar a posição e o tamanho do nosso checkbox na janela com o metodo setBound no objeto dela, depois usamos o metodo add no objeto da janela para adicionar o checkbox

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   
   janela.add(caixa1);
    }
}



podemos criar quantos checkbox a gente quiser

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
    private static JCheckBox caixa2;
    private static JCheckBox caixa3;
    private static JCheckBox caixa4;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   caixa2 = new JCheckBox("otaku");
   caixa3 = new JCheckBox("programador");
   caixa4 = new JCheckBox("gamer");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   caixa2.setBounds(0,40,200,30);
   caixa3.setBounds(0,80,200,30);
   caixa4.setBounds(0,120,200,30);
   
   janela.add(caixa1);
   janela.add(caixa2);
   janela.add(caixa3);
   janela.add(caixa4);
    }
}



podemos ja iniciar um checkbox ja marcado bastando passar true para o metodo setSelected, ou desmarcar um via codigo passando false

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   caixa1.setSelected(true);
   
   janela.add(caixa1);
    }
}

é possivel mudar o texto dos checkbox usando o metodo setText (tambem podemos ler o texto com o metodo getText)

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   caixa1.setText("novo texto");
   
   janela.add(caixa1);
    }
}

podemos checar se um determinado checkbox esta marcado com o metodo isSelected, ira retornar true caso esteja marcado ou false caso não esteja

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
    private static JButton botao;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   botao = new JButton("verificar");
   
   ActionListener evento = new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
      if(caixa1.isSelected()){
          JOptionPane.showMessageDialog(null, "checkbox foi marcado");
      }
      else{
          JOptionPane.showMessageDialog(null, "checkbox não foi marcado");
      }
       }
   };
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   botao.setBounds(10,40,120,40);
   botao.addActionListener(evento);
   
   janela.add(caixa1);
   janela.add(botao);
    }
}



com o metodo setForeground e setBackground mudamos tanto a cor do texto quanto a do fundo

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   caixa1.setForeground(Color.red);
   caixa1.setBackground(Color.blue);
   
   janela.add(caixa1);
    }
}

com o metodo setFont alteramos a fonte e o tamanho dela

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   Font minhafonte = new Font("arial",Font.BOLD,16);
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   caixa1.setBounds(0,0,200,30);
   caixa1.setFont(minhafonte);
   
   janela.add(caixa1);
    }
}

outro exemplo, agora mudando a cor e fonte

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JCheckBox caixa1;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   caixa1 = new JCheckBox("maior de idade");
   Font minhafonte = new Font("arial",Font.BOLD,16);
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   janela.getContentPane().setBackground(Color.black);
   
   caixa1.setBounds(0,0,200,30);
   caixa1.setFont(minhafonte);
   caixa1.setBackground(Color.gray);
   caixa1.setForeground(Color.white);
   
   janela.add(caixa1);
    }
}



o radiobutton tem o funcionamento parecido com o checkbox, a sua diferença em java é a parte visual (em outras linguagens o radiobutton por padrão assume um funcionamento diferente do checkbox o que não ocorre em java)

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JRadioButton radio1;
    private static JRadioButton radio2;
    private static JRadioButton radio3;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   radio1 = new JRadioButton("kodo no kami");
   radio2 = new JRadioButton("fts315");
   radio3 = new JRadioButton("flavio");
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   radio1.setBounds(0,0,200,30);
   radio2.setBounds(0,30,200,30);
   radio3.setBounds(0,60,200,30);

   janela.add(radio1);
   janela.add(radio2);
   janela.add(radio3);
    }
}



em algumas linguagens de programação o que diferencia um checkbox de um radiobutton é o seu funcionamento, o checkbox permite marcar varios itens e o seu funcionamento é individual em cada um deles, ja o radiobutton permite marcar apenas um item e tem o funcionamento em grupo, para a gente fazer esse funcionamento em java temos que usar um objeto do tipo ButtonGroup (javax.swing.ButtonGroup), com isso sera possivel marcar apenas um unico radiobutton daquele grupo

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JRadioButton radio1;
    private static JRadioButton radio2;
    private static JRadioButton radio3;
    private static ButtonGroup grupo;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   radio1 = new JRadioButton("kodo no kami");
   radio2 = new JRadioButton("fts315");
   radio3 = new JRadioButton("flavio");
   grupo = new ButtonGroup();
   
   janela.setBounds(400,350,350,200);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.setLayout(null);
   
   radio1.setBounds(0,0,200,30);
   radio2.setBounds(0,30,200,30);
   radio3.setBounds(0,60,200,30);

   grupo.add(radio1);
   grupo.add(radio2);
   grupo.add(radio3);
   
   janela.add(radio1);
   janela.add(radio2);
   janela.add(radio3);
    }
}



bom galera é isso ate a proxima parte desse tutorial ^^

by kodo no kami

Ver perfil do usuário https://eofclub.in/forum

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum