Como faço para meu textField aceitar apenas numeros

11 respostas
L

tenho um textField e gostaria que ele aceitasse apenas numeros, bom, numeros e ponto, para as casas decimais, double, seria no caso!
se alguem puder me ajudar!

11 Respostas

P

Dá uma olhada nessa matéria:

http://www.imasters.com.br/artigo.php?cn=2364&cc=15

Boa sorte!

L

a tentativa foi boa, mais naum sei oque estou fzendo errado, mais naum consigo fazer funcionar!!!

alguem tem algum exemplo rodando pra me mostrar?

P

humm nao tenho, nunca precisei fazer isso, mas se você quiser manda o código e a gente fuça juntos.

L

ta i, ve se me da uma mão, quero saber se vc tbm pode me ajudar em fazer esse programa atualizar a cada minuto!!! para poder dar um aviso quando coferir a hora da tarefa agendada e emitir uma mensagem!

import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.*;


public class agenda extends JFrame implements ActionListener{
	
	private JTextField data1 = new JTextField("");
	private JTextField hora1 = new JTextField("");
	private JTextField anotacao = new JTextField("");
	private GridBagLayout layout; 
    private GridBagConstraints constraints; 
    private Container container; 
    private JButton agendar;
    private JLabel horario, dataEntrada, tarefa;
    private String sData ,sHora;
    
    
    public agenda(){
    	
    	super("Programador de Tarefas em Java");
    	
    	Calendar cal = Calendar.getInstance(); 
    	java.util.Date data = cal.getTime(); 
    	SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
    	SimpleDateFormat formatter2 = new SimpleDateFormat("hh:mm");
    	sData = formatter.format(data);
    	sHora = formatter2.format(data);
    
                     
 System.out.println(sHora);
 System.out.println(sData);
    	
    	container = getContentPane();
		layout = new GridBagLayout();
		container.setLayout(layout);
		
		constraints = new GridBagConstraints();
		
		dataEntrada = new JLabel("Entre com a data:");
		data1.addActionListener(this);
		
		horario = new JLabel("Entre com a hora ");
		hora1.addActionListener(this);
			
		tarefa = new JLabel("Entre com a tarefa");
		   	
    	agendar = new JButton("Agendar");
    	agendar.addActionListener(this);
   	
    	constraints.weightx = 1;
		constraints.weighty = 1;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.gridwidth = GridBagConstraints.REMAINDER;
		addComponent(dataEntrada);
			
		addComponent(data1);
		
		addComponent(horario);
		
		addComponent(hora1);
		
		addComponent(tarefa);
		
		addComponent(anotacao);
		
		addComponent(agendar);
				
		setSize(200,200);
    	setVisible(true);
    	
    }
	
    private void addComponent(Component component) {
		
	layout.setConstraints(component , constraints);
	container.add(component);
	
   }
	
    public void actionPerformed(ActionEvent event){
		
    	if (((JButton) event.getSource()).getText().equals("Agendar")){
	      	String tarefaAgendada = anotacao.getText();
    		anotacao.setText("");
	      	String dataConfirm = data1.getText();
	      	data1.setText("");
	      	String horaConfirm = hora1.getText();
    		hora1.setText("");
    		System.out.println(tarefaAgendada);
    		
    		/*if ((dataConfirm .equals(sData))& (horaConfirm .equals(sHora))){
    			JOptionPane.showMessageDialog(null, "Seu lembrente foi armazenado com sucesso");
    			System.out.println("OK");}
	      		else{
	      			JOptionPane.showMessageDialog(null, "Seu lembrente não pode ser armazenado");
	      			System.out.println("ERRO");
	      	
	      				
	      	}*/
    	}
	}	
	
	public static void main (String args[]){
		
			
		agenda application = new agenda();
		
		application.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		
	}
}

se puder me ajudar!!!
a data é lida como: dd/mm/yyy , e a hora, hh:mm , dai os campos teria de estar ja preparados tipo [ / / ] e [ : ], e so entrar com numeros inteiros..., blz., ja tentei de tudo, mais naum consegui!

P

cara, eu nunca mexi com isso, mas tenta algo assim

import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;


public class Agenda extends JFrame implements ActionListener
{
	public Agenda()
	{
		super("Programador de Tarefas em Java");
		
		try{
			MaskFormatter maskFormatter = new MaskFormatter("****");
			maskFormatter.setValidCharacters("0123456789abcdefghijlmnopqrstuvxzkwyABCDEFGHIJLMNOPQRSTUVXZKWY");
			anotacao = new JFormattedTextField(maskFormatter);
			
			MaskFormatter maskFormatterDate = new MaskFormatter("##/##/####");
			data1 = new JFormattedTextField(maskFormatterDate);
			
			MaskFormatter maskFormatterHour = new MaskFormatter("##:##");
			hora1 = new JFormattedTextField(maskFormatterHour);
			
			
		}catch(Exception e){
			e.printStackTrace();
		}

		Calendar cal = Calendar.getInstance();
		java.util.Date data = cal.getTime();
/*		
		SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		SimpleDateFormat formatter2 = new SimpleDateFormat("hh:mm");
		
		sData = formatter.format(data);
		sHora = formatter2.format(data);

		System.out.println(sHora);
		System.out.println(sData);
*/
		container = getContentPane();
		layout = new GridBagLayout();
		container.setLayout(layout);

		constraints = new GridBagConstraints();

		dataEntrada = new JLabel("Entre com a data:");
		data1.addActionListener(this);

		horario = new JLabel("Entre com a hora ");
		hora1.addActionListener(this);

		tarefa = new JLabel("Entre com a tarefa");

		agendar = new JButton("Agendar");
		agendar.addActionListener(this);

		constraints.weightx = 1;
		constraints.weighty = 1;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.gridwidth = GridBagConstraints.REMAINDER;
		addComponent(dataEntrada);

		addComponent(data1);

		addComponent(horario);

		addComponent(hora1);

		addComponent(tarefa);

		addComponent(anotacao);

		addComponent(agendar);

		setSize(200, 200);
		setVisible(true);

	}

	private void addComponent(Component component)
	{

		layout.setConstraints(component, constraints);
		container.add(component);

	}

	public void actionPerformed(ActionEvent event)
	{

		if (((JButton) event.getSource()).getText().equals("Agendar"))
		{
			String tarefaAgendada = anotacao.getText();
			anotacao.setText("");
			String dataConfirm = data1.getText();
			data1.setText("");
			String horaConfirm = hora1.getText();
			hora1.setText("");
			System.out.println(tarefaAgendada);

			/*
			 * if ((dataConfirm .equals(sData))& (horaConfirm .equals(sHora))){ JOptionPane.showMessageDialog(null, "Seu
			 * lembrente foi armazenado com sucesso"); System.out.println("OK");} else{
			 * JOptionPane.showMessageDialog(null, "Seu lembrente não pode ser armazenado"); System.out.println("ERRO"); }
			 */
		}
	}

	public static void main(String args[])
	{

		Agenda application = new Agenda();

		application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	private JTextField data1;

	private JTextField hora1;

	private JTextField anotacao;

	private GridBagLayout layout;

	private GridBagConstraints constraints;

	private Container container;

	private JButton agendar;

	private JLabel horario, dataEntrada, tarefa;

	private String sData, sHora;

}
L

valeu deu certo, o unico problema agora é que naum consigo diminuir o tamnaha de meu textField, ele fica ocupando a linha intera…

e tbm aquele esquema de ficar atualizando, vc naum tem alguma ideia sobre como fazer isso?

P

Eu criei o obj Dimension para brincar com o tamanho dos componentes.

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

public class Agenda extends JFrame implements ActionListener
{
	public Agenda()
	{
		super("Programador de Tarefas em Java");

		try
		{
			MaskFormatter maskFormatter = new MaskFormatter("****");
			maskFormatter.setValidCharacters("0123456789abcdefghijlmnopqrstuvxzkwyABCDEFGHIJLMNOPQRSTUVXZKWY ");
			anotacao = new JFormattedTextField(maskFormatter);

			MaskFormatter maskFormatterDate = new MaskFormatter("##/##/####");
			data1 = new JFormattedTextField(maskFormatterDate);

			MaskFormatter maskFormatterHour = new MaskFormatter("##:##");
			hora1 = new JFormattedTextField(maskFormatterHour);

		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		Calendar cal = Calendar.getInstance();
		java.util.Date data = cal.getTime();

		container = getContentPane();
		layout = new GridBagLayout();
		container.setLayout(layout);

		constraints = new GridBagConstraints();

		dataEntrada = new JLabel("Entre com a data:");
		data1.addActionListener(this);

		horario = new JLabel("Entre com a hora ");
		hora1.addActionListener(this);

		tarefa = new JLabel("Entre com a tarefa");

		agendar = new JButton("Agendar");
		agendar.addActionListener(this);

		constraints.weightx = 1;
		constraints.weighty = 1;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.gridwidth = GridBagConstraints.REMAINDER;

		addComponent(dataEntrada);
		addComponent(data1);
		addComponent(horario);
		addComponent(hora1);
		addComponent(tarefa);
		addComponent(anotacao);
		addComponent(agendar);

		setLocation(300, 300);
		setSize(200, 200);
		setVisible(true);

		Dimension dimension = new Dimension();
		dimension.width = 190;
		dimension.height = 20;

		data1.setSize(dimension);
		hora1.setSize(dimension);
		anotacao.setSize(dimension);

	}

	private void addComponent(Component component)
	{
		layout.setConstraints(component, constraints);
		container.add(component);
	}

	public void actionPerformed(ActionEvent event)
	{

		if (((JButton) event.getSource()).getText().equals("Agendar"))
		{
			String tarefaAgendada = anotacao.getText();
			anotacao.setText("");

			String dataConfirm = data1.getText();
			data1.setText("");

			String horaConfirm = hora1.getText();
			hora1.setText("");

			System.out.println(tarefaAgendada);

			/*
			 * if ((dataConfirm .equals(sData))& (horaConfirm .equals(sHora))){ JOptionPane.showMessageDialog(null, "Seu
			 * lembrente foi armazenado com sucesso"); System.out.println("OK");} else{
			 * JOptionPane.showMessageDialog(null, "Seu lembrente não pode ser armazenado"); System.out.println("ERRO"); }
			 */
		}
	}

	public static void main(String args[])
	{

		Agenda application = new Agenda();

		application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	private JTextField data1;

	private JTextField hora1;

	private JTextField anotacao;

	private GridBagLayout layout;

	private GridBagConstraints constraints;

	private Container container;

	private JButton agendar;

	private JLabel horario, dataEntrada, tarefa;

	private String sData, sHora;

}
L

continuou na mesma, naum modou em nada qui, continua ocupando a linha intera…

tipo naum da pra fazer assim:

data [ / / ]
hora [ : ]

tarefa:

[ (*) ]
[ ]
[agendar]

(*) aqui o textFoeld seria um pouco estendido !!!, naum consigo manipular os botoes, sempre esta dando erro, nem aumentar o textField

P
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

import com.sun.corba.se.internal.iiop.ListenerThread;
import com.sun.rsasign.t;

public class Agenda extends JFrame implements ActionListener
{
	public Agenda()
	{
		super("Programador de Tarefas em Java");

		try
		{
			MaskFormatter maskFormatter = new MaskFormatter("****");
			maskFormatter.setValidCharacters("0123456789abcdefghijlmnopqrstuvxzkwyABCDEFGHIJLMNOPQRSTUVXZKWY ");
			anotacao = new JFormattedTextField(maskFormatter);

			MaskFormatter maskFormatterDate = new MaskFormatter("##/##/####");
			data1 = new JFormattedTextField(maskFormatterDate);

			MaskFormatter maskFormatterHour = new MaskFormatter("##:##");
			hora1 = new JFormattedTextField(maskFormatterHour);

		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		Calendar cal = Calendar.getInstance();
		java.util.Date data = cal.getTime();

		container = getContentPane();
		layout = new GridBagLayout();
		container.setLayout(layout);

		constraints = new GridBagConstraints();

		dataEntrada = new JLabel("Entre com a data:");
		data1.addActionListener(this);

		horario = new JLabel("Entre com a hora ");
		hora1.addActionListener(this);

		tarefa = new JLabel("Entre com a tarefa");

		agendar = new JButton("Agendar");
		agendar.addActionListener(this);

		constraints.weightx = 1;
		constraints.weighty = 1;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.gridwidth = GridBagConstraints.REMAINDER;

		addComponent(dataEntrada);
		addComponent(data1);
		addComponent(horario);
		addComponent(hora1);
		addComponent(tarefa);
		addComponent(anotacao);
		addComponent(agendar);

		setLocation(300, 300);
		setSize(200, 200);
		setVisible(true);

		Dimension dimension = new Dimension();
		dimension.width = 190;
		dimension.height = 20;

		data1.setSize(dimension);
		hora1.setSize(dimension);
		anotacao.setSize(dimension);

	}

	private void addComponent(Component component)
	{
		layout.setConstraints(component, constraints);
		container.add(component);
	}

	public void actionPerformed(ActionEvent event)
	{

		if (((JButton) event.getSource()).getText().equals("Agendar"))
		{
			String tarefaAgendada = anotacao.getText();
			anotacao.setText("");

			String dataConfirm = data1.getText();
			data1.setText("");

			String horaConfirm = hora1.getText();
			hora1.setText("");

			System.out.println(tarefaAgendada);

			/*
			 * if ((dataConfirm .equals(sData))& (horaConfirm .equals(sHora))){ JOptionPane.showMessageDialog(null, "Seu
			 * lembrente foi armazenado com sucesso"); System.out.println("OK");} else{
			 * JOptionPane.showMessageDialog(null, "Seu lembrente não pode ser armazenado"); System.out.println("ERRO"); }
			 */
		}
	}

	public static void main(String args[])
	{

		try
		{
			for (;;)
			{
				Agenda application = new Agenda();
				Thread.sleep(60000);
				//application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			}
		}
		catch (InterruptedException e)
		{
			e.printStackTrace();
		}

	}

	private JTextField data1;

	private JTextField hora1;

	private JTextField anotacao;

	private GridBagLayout layout;

	private GridBagConstraints constraints;

	private Container container;

	private JButton agendar;

	private JLabel horario, dataEntrada, tarefa;

	private String sData, sHora;

}
P

cara eu sei tanto qto vc, rss
nada

eu sugiro q vc brinque com os dados
se reparar a janela está setada com 200

setSize(200, 200);

entao nao da pra aumentar o campo acima disso (a menos q aumente a janela)

ao inves de vc usar Dimension, vc pode passar o tamanho com
component.setSize(w,h);”

L

esse thead ai, deu puta pau, ele naum atulaiza, e sim gera o pragrama denovo, tive que finalizar o eclipse pra para de gerar…, ptz, que locura

Criado 18 de fevereiro de 2005
Ultima resposta 23 de fev. de 2005
Respostas 11
Participantes 2