TFormat1.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; // for DocumentListener
import javax.swing.text.*; // for DefaultFormatter, Document
import java.net.URL;
import java.text.*;
import java.util.Date;
/**
Exercise the default formatter.
*/
public class TFormat1 extends JFrame
{
public static void main(String[] argv)
{
TFormat1 t = new TFormat1();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.show();
}
public TFormat1()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension ss = kit.getScreenSize();
setSize(3*ss.width/4,ss.height/4);
setLocation(ss.width/8,ss.height/8);
setTitle("CISC370-011 -- Default formatter demo");
JPanel p = new JPanel();
Container cp = getContentPane();
cp.add(p);
DefaultFormatter f = new DefaultFormatter();
f.setOverwriteMode(false);
JFormattedTextField urlField = new JFormattedTextField(f);
p.add(urlField);
urlField.setColumns(50);
try {
urlField.setValue(
new URL("http://www.eecis.udel.edu/~leipold/"));
}
catch (Exception e) {
}
JFormattedTextField dateField = new
JFormattedTextField(
DateFormat.getDateInstance(DateFormat.MEDIUM));
dateField.setColumns(50);
p.add(dateField);
dateField.setValue(new Date());
try {
JFormattedTextField bozo = new
JFormattedTextField(
new MaskFormatter("###-###-####"));
bozo.setColumns(50);
p.add(bozo);
}
catch (ParseException ex) {
}
JLabel echo = new JLabel("Date goes here.");
p.add(echo);
dateField.getDocument().
addDocumentListener(new SillyListener(echo));
}
}
class SillyListener implements DocumentListener
{
public SillyListener(JLabel echo)
{
this.echo = echo;
}
public void insertUpdate(DocumentEvent e)
{
String s;
Document doc = e.getDocument();
try {
s = doc.getText(0,doc.getLength());
}
catch (BadLocationException ex) {
s = "";
}
echo.setText(s);
}
public void removeUpdate(DocumentEvent e)
{
String s;
Document doc = e.getDocument();
try {
s = doc.getText(0,doc.getLength());
}
catch (BadLocationException ex) {
s = "";
}
echo.setText(s);
}
public void changedUpdate(DocumentEvent e)
{
System.out.println("Oops!");
}
private JLabel echo;
}