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!
Como faço para meu textField aceitar apenas numeros
11 Respostas
a tentativa foi boa, mais naum sei oque estou fzendo errado, mais naum consigo fazer funcionar!!!
alguem tem algum exemplo rodando pra me mostrar?
humm nao tenho, nunca precisei fazer isso, mas se você quiser manda o código e a gente fuça juntos.
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!
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;
}
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?
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;
}
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
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;
}
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);”
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