Hi *
habe ein kleines CalendarWidget das ein JFormattedTextField benutzt.
Beim initialen Anzeigen setze ich das field auf NULL.
Geht der User hin und tippt ein Wert ein, so wird ein gültiger Datumswert gesetzt. Soll auch so sein.
Ich möchte nun aber auch die Möglichkeit bieten, dass auch der Datumswert wieder gelöscht werden kann. Finde aber derzeit keine Lösung dafür.
Hier mal ein kleines Demo
[HIGHLIGHT="Java"]import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.DateFormatter;
public class JFormattedTF
{
JFormattedTextField field = null;
public JFormattedTF()
{
this.run();
}
public static void main(String args[])
{
JFormattedTF tf = new JFormattedTF();
tf.run();
}
public void run()
{
DateFormatter formatter = new DateFormatter(DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault()));
field = new JFormattedTextField(formatter);
field.setValue(null);
field.setPreferredSize(new Dimension(90,20));
JTextField field1 = new JTextField(20);
JPanel center = new JPanel( new FlowLayout(FlowLayout.LEFT) );
center.add(new JLabel("JFormattedTextField:"));
center.add(field,BorderLayout.CENTER);
center.add(new JLabel("JTextField:"));
center.add(field1);
JPanel content = new JPanel( new FlowLayout(FlowLayout.LEFT) );
content.add( center, BorderLayout.SOUTH );
JFrame frame = new JFrame("Test program");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(content);
frame.setSize(550,100);
frame.setVisible(true);
}
}[/HIGHLIGHT]
Was ist zu tun (welches Event) damit der Úser das Datum auch wieder löschen kann.
Many thanx
Grüsse
Ralph
habe ein kleines CalendarWidget das ein JFormattedTextField benutzt.
Beim initialen Anzeigen setze ich das field auf NULL.
Geht der User hin und tippt ein Wert ein, so wird ein gültiger Datumswert gesetzt. Soll auch so sein.
Ich möchte nun aber auch die Möglichkeit bieten, dass auch der Datumswert wieder gelöscht werden kann. Finde aber derzeit keine Lösung dafür.
Hier mal ein kleines Demo
[HIGHLIGHT="Java"]import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.DateFormatter;
public class JFormattedTF
{
JFormattedTextField field = null;
public JFormattedTF()
{
this.run();
}
public static void main(String args[])
{
JFormattedTF tf = new JFormattedTF();
tf.run();
}
public void run()
{
DateFormatter formatter = new DateFormatter(DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault()));
field = new JFormattedTextField(formatter);
field.setValue(null);
field.setPreferredSize(new Dimension(90,20));
JTextField field1 = new JTextField(20);
JPanel center = new JPanel( new FlowLayout(FlowLayout.LEFT) );
center.add(new JLabel("JFormattedTextField:"));
center.add(field,BorderLayout.CENTER);
center.add(new JLabel("JTextField:"));
center.add(field1);
JPanel content = new JPanel( new FlowLayout(FlowLayout.LEFT) );
content.add( center, BorderLayout.SOUTH );
JFrame frame = new JFrame("Test program");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(content);
frame.setSize(550,100);
frame.setVisible(true);
}
}[/HIGHLIGHT]
Was ist zu tun (welches Event) damit der Úser das Datum auch wieder löschen kann.
Many thanx
Grüsse
Ralph
Zuletzt bearbeitet von einem Moderator: