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 2

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

1 [tutorial] java swing: parte 2 em 11/9/2017, 00:34

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)

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

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