这个程序错在哪?(Java核心技术卷一P324例题)
package com.corejava.L93;
/**
* 第七个数--短日期格式
*/
DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
format.setLenient(false);
JFormattedTextField dateField2 = new JFormattedTextField(format);
dateField2.setValue(new Date());
addRow("Date(short,not lenient):", dateField2);
try {
DefaultFormatter formatter = new DefaultFormatter();
formatter.setOverwriteMode(false);
JFormattedTextField urlField = new JFormattedTextField(formatter);
urlField.setValue(new URL("http://java.sun.com"));
addRow("URL:", urlField);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
MaskFormatter formatter = new MaskFormatter("###-##-####");//错误1
formatter.setPlaceholderCharacter('0');
JFormattedTextField ssnField = new JFormattedTextField(formatter);
ssnField.setValue("078-05-1120");
addRow("SSN Mask:", ssnField);
} catch (
ParseException exception) {
exception.printStackTrace();
}
JFormattedTextField ipField = new JFormattedTextField(
new IPAddressFormatter());
ipField.setValue(new byte[] { (byte) 130, 65, 86, 66 });
addRow("IP Address:", ipField);
}
public void addRow(String labelText, final JFormattedTextField field) {
mainPanel.add(new JLabel(labelText));
mainPanel.add(field);
final JLabel valueLabel = new JLabel();
mainPanel.add(valueLabel);
okButton.addActionListener(new ActionListener() {//错误2
public void acctionPerformed(ActionEvent event) {
Object value = field.getValue();
if (value.getClass().isArray()) {
StringBuilder builder = new StringBuilder();
builder.append('{');
for (int i = 0; i < Array.getLength(value); i++) {
if (i > 0)
builder.append(',');
builder.append(Array.get(value, i).toString());
}
builder.append('}');
valueLabel.setText(builder.toString());
} else
valueLabel.setText(value.toString());
}
});
}
}
class IntFilter extends DocumentFilter {
public void insertString(FilterBypass fb, int offset, String string,
AttributeSet attr) throws BadLocationException {
StringBuilder builder = new StringBuilder(string);
for (int i = builder.length() - 1; i >= 0; i--) {
int cp = builder.codePointAt(i);
if (!Character.isDigit(cp) && cp != '=') {
builder.deleteCharAt(i);
if (Character.isSupplementaryCodePoint(cp)) {
i--;
builder.deleteCharAt(i);
}
}
}
super.insertString(fb, offset, builder.toString(), attr);
}
public void replace(FilterBypass fb, int offset, int length, String string,