[tutorial] java swing: parte 6

Postagem de conteúdo sobre programação java
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 719
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] java swing: parte 6

Post by Kodo no Kami » Tue Aug 29, 2017 3:32 pm

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

Code: Select all

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);
    }
}
Image

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

Code: Select all

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

Code: Select all

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);
    }
}
Image

podemos criar quantos checkbox a gente quiser

Code: Select all

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);
    }
}
Image

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

Code: Select all

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)

Code: Select all

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

Code: Select all

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);
    }
}
Image

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

Code: Select all

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

Code: Select all

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

Code: Select all

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);
    }
}
Image

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)

Code: Select all

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);
    }
}
Image

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

Code: Select all

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);
    }
}
Image

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

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “Java”