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 4

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

1 [tutorial] java swing: parte 4 em 16/9/2017, 03:59

a ae galera continuando a quarta parte do tutorial de swing em java nessa vamos aprender sobre JTextField, sendo esse componente nos permite entrar com dados digitado do usuario, para começar o tutorial como de costume criamos uma simples janela

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.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
    }
}



agora a gente instancia um objeto da classe JTextField (javax.swing.JTextField)

Código:
package kodo;

import javax.swing.*;

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

como estamos usando layout absoluto temos que especificar o tamanho dele e a sua posição com o metodo setBounds

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(0,0,300,25);
    }
}

por fim basta a gente adicionar ele na janela usando o metodo add nela

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(0,0,300,25);
   
   janela.add(entrada);
    }
}



podemos alterar o texto dentro via programação usando o metodo setText, nele passamos como argumento uma string

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(0,0,300,25);
   entrada.setText("o texto foi alterado!!!");
   
   janela.add(entrada);
    }
}

ou pegar o texto la dentro usando o metodo getText

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   String texto;
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(0,0,300,25);
   entrada.setText("o texto foi alterado!!!");
   texto = entrada.getText();
   
   System.out.println(texto);
   
   janela.add(entrada);
    }
}



podemos fazer isso quando apertar em um botão

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
    private static JButton botao;
    private static JLabel texto;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   botao = new JButton("waifu");
   texto = new JLabel();
   
   ActionListener evento = new ActionListener() {
      
       @Override
       public void actionPerformed(ActionEvent e) {
      texto.setText(entrada.getText());
       }
   };
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   texto.setBounds(10,100,280,30);
   botao.setBounds(25,50,250,30);
   
   botao.addActionListener(evento);
   
   janela.add(entrada);
   janela.add(botao);
   janela.add(texto);
    }
}



para alterar a cor do texto usamos o metodo setForeground, passamos como argumento para ele um atributo do Color

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   entrada.setForeground(Color.blue);

   janela.add(entrada);
    }
}

para mudar a cor do fundo usamos o metodo setBackground e passamos como argumento o atributo do Color

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   entrada.setBackground(Color.green);

   janela.add(entrada);
    }
}

para a fonte usamos o metodo setFont e o seu argumento é um objeto do tipo Font

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   Font fonte = new Font("arial",Font.BOLD,18);
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   entrada.setFont(fonte);

   janela.add(entrada);
    }
}

outro exemplo alterando a fonte, background e o texto

Código:
package kodo;

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

public class Principal {
    private static JFrame janela;
    private static JTextField entrada, entrada2, entrada3;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   entrada2 = new JTextField();
   entrada3 = new JTextField();
   Font fonte = new Font("arial",Font.BOLD,18);
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   janela.getContentPane().setBackground(Color.blue);
   
   entrada.setBounds(25,10,250,25);
   entrada.setBackground(Color.cyan);
   entrada.setForeground(Color.red);
   entrada.setFont(fonte);
   
   entrada2.setBounds(25,50,250,25);
   entrada2.setBackground(Color.cyan);
   entrada2.setForeground(Color.darkGray);
   entrada2.setFont(fonte);
   
   entrada3.setBounds(25,90,250,25);
   entrada3.setBackground(Color.cyan);
   entrada3.setForeground(Color.orange);
   entrada3.setFont(fonte);

   janela.add(entrada);
   janela.add(entrada2);
   janela.add(entrada3);
    }
}



podemos desativar e ativar ele com o metodo setEnabled, se passar o argumento false sera desativado não sendo possivel modificar, se passar o argumento true sera habilitado novamente

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   entrada.setEnabled(false);

   janela.add(entrada);
    }
}

da mesma forma podemos ocultar com o metodo setVisible bastando passar como argumento false (ou true para fazer aparecer novamente)

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JTextField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JTextField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);
   entrada.setVisible(false);

   janela.add(entrada);
    }
}

outro componente semelhante ao JTextField é o JPasswordField (javax.swing.JPasswordField), sendo sua diferença que ele não exibe os caracteres e sim asterisco no lugar

Código:
package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    private static JPasswordField entrada;
   
    public static void main(String[] args){
   janela = new JFrame("minha janela");
   entrada = new JPasswordField();
   
   janela.setBounds(200,200,300,200);
   janela.setLayout(null);
   janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
   janela.setVisible(true);
   
   entrada.setBounds(25,10,250,25);

   janela.add(entrada);
    }
}



bom galera combinando o JTextField, JButton e JLabel é possivel criar quase tudo para um programa grafico. então galera esse tutorial ainda tera algumas partes falando sobre outros componentes então ate a proxima parte \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