e ae galera continuando o tutorial de java swing nessa parte vamos aprender a criar um botão, para começar criamos uma janela como no tutorial anterior (ou carregar o codigo anterior XD)
para a gente criar um botão temos que instanciar a classe JButton (javax.swing.JButton), podemos passar como argumento para ela o texto no botão
com o botão criado podemos adicionar ele na janela com o metodo add no objeto da janela
é possivel colocar outro botão bastando instanciar outro objeto JButton, so que existe um pequeno problema o segundo botão ira sobrepor o primeiro botão
o motivo do botão sobrepor o outro porque não existe nenhum layout na janela então vamos deixar o layout absoluto (não se preocupe mais para frente vamos falar mais sobre os layouts), para a gente colocar o layout absoluto passamos como argumento null para o metodo setLayout da nossa janela
se a gente executar o codigo não sera exibido nenhum botão apenas uma janela vazia devido eles esta com tamanho 0x0, então temos que redimensionar os botões usando os metodos setSize e setLocation para colocar eles com um tamanho especifico e uma posição especifica na janela (tambem podemos usar o setBounds e passar os 4 paremetros ao mesmo tempo)
podemos modificar o texto no botão usando o metodo setText no objeto do botão
ou ler esse texto com o metodo getText
é possivel mudar a cor do texto usando o metodo setForeground, passamos como argumento para ele o atributo da cor no Color (java.awt.Color)
tambem é possivel mudar a cor de fundo usando o metodo setBackground
para mudar a fonte usamos o metodo setFont, temos que passar como argumento para ele um objeto do tipo font (java.awt.Font)
podemos desativar um botão com o metodo setEnabled passando como argumento false, para ativar o botão novamente basta passar como argumento o true
para manipular eventos como o apertar de um botão usamos o evento ActionListener (não é o unico existem outros), para a gente usar esse evento usamos o metodo setActionListener no botão, passamos como argumento para ele o metodo ActionListener (java.awt.event.ActionListener), nessa classe existe um metodo que é o actionPerformed que temos que sobrescrever ele com o nosso metodo com isso quando o botao for pressionado sera chamado esse metodo
podemos por exemplo exibir uma janela com uma mensagem usando a classe JOptionPane (javax.swing.JOptionPane) com o metodo showMessageDialog dele (ou qualquer outra coisa)
então galerinha esse tutorial não termina aqui não tem muitas coisas que vou abordar em futuras partes dele \o, tambem vou continuar o tutorial de blitz basic (assim que o kodo toma vergonha na cara e instalar o windows novamente kkk), alem de precisar terminar o ebook de asm esse ano tambem (pqp o kodo ta é fudido isso sim u.u ), então galera ate a proxima parte desse tutorial ou de algum outro \o
by kodo no kami
- 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(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
}
}
para a gente criar um botão temos que instanciar a classe JButton (javax.swing.JButton), podemos passar como argumento para ela o texto no botão
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
}
}
com o botão criado podemos adicionar ele na janela com o metodo add no objeto da janela
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.add(botao);
}
}
é possivel colocar outro botão bastando instanciar outro objeto JButton, so que existe um pequeno problema o segundo botão ira sobrepor o primeiro botão
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao, botao2;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
botao2 = new JButton("esse é o segundo botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.add(botao);
janela.add(botao2);
}
}
o motivo do botão sobrepor o outro porque não existe nenhum layout na janela então vamos deixar o layout absoluto (não se preocupe mais para frente vamos falar mais sobre os layouts), para a gente colocar o layout absoluto passamos como argumento null para o metodo setLayout da nossa janela
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao, botao2;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
botao2 = new JButton("esse é o segundo botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
janela.add(botao);
janela.add(botao2);
}
}
se a gente executar o codigo não sera exibido nenhum botão apenas uma janela vazia devido eles esta com tamanho 0x0, então temos que redimensionar os botões usando os metodos setSize e setLocation para colocar eles com um tamanho especifico e uma posição especifica na janela (tambem podemos usar o setBounds e passar os 4 paremetros ao mesmo tempo)
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao, botao2;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
botao2 = new JButton("esse é o segundo botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(20,30, 200, 50);
botao2.setBounds(20,90, 200, 50);
janela.add(botao);
janela.add(botao2);
}
}
podemos modificar o texto no botão usando o metodo setText no objeto do botão
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(20,30, 200, 50);
botao.setText("novo texto");
janela.add(botao);
}
}
ou ler esse texto com o metodo getText
- Código:
package kodo;
import javax.swing.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("meu botao");
String texto;
janela.setBounds(200,200,300,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(20,30, 200, 50);
texto = botao.getText();
System.out.println(texto);
janela.add(botao);
}
}
é possivel mudar a cor do texto usando o metodo setForeground, passamos como argumento para ele o atributo da cor no Color (java.awt.Color)
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
public class Principal {
private static JFrame janela;
private static JButton botao, botao2;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("sair da matrix");
botao2 = new JButton("fica na matrix");
janela.setBounds(200,200,350,150);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(10,30, 150, 50);
botao.setForeground(Color.red);
botao2.setBounds(180,30, 150, 50);
botao2.setForeground(Color.green);
janela.add(botao);
janela.add(botao2);
}
}
tambem é possivel mudar a cor de fundo usando o metodo setBackground
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
public class Principal {
private static JFrame janela;
private static JButton botao, botao2, botao3, botao4;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("c/c++");
botao2 = new JButton("pascal");
botao3 = new JButton("perl");
botao4 = new JButton("php");
janela.setBounds(200,200,350,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
janela.getContentPane().setBackground(Color.black);
botao.setBounds(10,30, 150, 50);
botao.setBackground(Color.orange);
botao2.setBounds(180,30, 150, 50);
botao2.setBackground(Color.yellow);
botao3.setBounds(10,100, 150, 50);
botao3.setBackground(Color.gray);
botao4.setBounds(180,100, 150, 50);
botao4.setBackground(Color.green);
janela.add(botao);
janela.add(botao2);
janela.add(botao3);
janela.add(botao4);
}
}
para mudar a fonte usamos o metodo setFont, temos que passar como argumento para ele um objeto do tipo font (java.awt.Font)
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("ok");
Font minhafonte = new Font("arial",Font.BOLD, 20);
janela.setBounds(200,200,350,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(10,30, 150, 50);
botao.setFont(minhafonte);
janela.add(botao);
}
}
podemos desativar um botão com o metodo setEnabled passando como argumento false, para ativar o botão novamente basta passar como argumento o true
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("ok");
janela.setBounds(200,200,350,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(10,30, 150, 50);
botao.setEnabled(false);
janela.add(botao);
}
}
para manipular eventos como o apertar de um botão usamos o evento ActionListener (não é o unico existem outros), para a gente usar esse evento usamos o metodo setActionListener no botão, passamos como argumento para ele o metodo ActionListener (java.awt.event.ActionListener), nessa classe existe um metodo que é o actionPerformed que temos que sobrescrever ele com o nosso metodo com isso quando o botao for pressionado sera chamado esse metodo
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("minha mensagem");
ActionListener acao = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
};
janela.setBounds(200,200,350,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(10,30, 150, 50);
botao.addActionListener(acao);
janela.add(botao);
}
}
podemos por exemplo exibir uma janela com uma mensagem usando a classe JOptionPane (javax.swing.JOptionPane) com o metodo showMessageDialog dele (ou qualquer outra coisa)
- Código:
package kodo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Principal {
private static JFrame janela;
private static JButton botao;
public static void main(String[] args){
janela = new JFrame("minha janela");
botao = new JButton("java");
ActionListener acao = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "tuto by kodo no kami");
}
};
janela.setBounds(200,200,350,200);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
janela.setVisible(true);
janela.setLayout(null);
botao.setBounds(10,30, 150, 50);
botao.addActionListener(acao);
janela.add(botao);
}
}
então galerinha esse tutorial não termina aqui não tem muitas coisas que vou abordar em futuras partes dele \o, tambem vou continuar o tutorial de blitz basic (assim que o kodo toma vergonha na cara e instalar o windows novamente kkk), alem de precisar terminar o ebook de asm esse ano tambem (pqp o kodo ta é fudido isso sim u.u ), então galera ate a proxima parte desse tutorial ou de algum outro \o
by kodo no kami