[tutorial] java swing: parte 4

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

[tutorial] java swing: parte 4

Post by Kodo no Kami » Tue Jul 25, 2017 3:54 pm

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

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

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

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

Code: Select all

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

Code: Select all

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

podemos fazer isso quando apertar em um botão

Code: Select all

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

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

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

Code: Select all

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)

Code: Select all

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

Code: Select all

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

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
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “Java”