java swing

中间下划线处提示错误,百思不得其解

package dodod;
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import java.net.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
public class FormatTest {
    public static void main(String[] args)
    {
        FormatTestFrame frame=new FormatTestFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
class FormatTestFrame extends JFrame
{
    public FormatTestFrame()
    {
        setTitle("FormatTest");
        setSize(WIDTH,HEIGHT);
        JPanel buttonPanel=new JPanel();
        okButton=new JButton("ok");
        buttonPanel.add(okButton);
        add(buttonPanel,BorderLayout.SOUTH);
        mainPanel=new JPanel();
        mainPanel.setLayout(new GridLayout(0,3));
        add(mainPanel,BorderLayout.CENTER);
        JFormattedTextField intField=new JFormattedTextField(NumberFormat.getIntegerInstance());
        intField.setValue(new Integer(100));
        addRow("Number:",intField);
        JFormattedTextField intField2=new JFormattedTextField(NumberFormat.getIntegerInstance());
        intField2.setValue(new Integer(100));
        intField2.setFocusLostBehavior(JFormattedTextField.COMMIT);
        addRow("Number(Commit behavior):",intField2);
        JFormattedTextField intField3=new JFormattedTextField(new InternationalFormatter(NumberFormat.getIntegerInstance()){
            protected DocumentFilter getDocumentFilter()
            {
                return filter;
            }
            private DocumentFilter filter=new IntFilter();
        });
        intField3.setValue(new Integer(100));
        addRow("Filtered Number",intField3);
        JFormattedTextField intField4=new JFormattedTextField(NumberFormat.getIntegerInstance());
        intField4.setValue(new Integer(100));
            intField4.setInputVerifier(new FormattedTextFieldVerifier());
        addRow("Verified Number:",intField4);
        JFormattedTextField currencyField=new JFormattedTextField(NumberFormat.getIntegerInstance());
        currencyField.setValue(new Double(10));
        addRow("Currency:",currencyField);
        JFormattedTextField dateField=new JFormattedTextField(DateFormat.getInstance());
        dateField.setValue(new Date());
        addRow("Date(default):",dateField);
        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 DateFormatter();
            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("###-##-####");
            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()
        {
            public void actionPerformed(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());
            }
        });
    }
    public static final int WIDTH=500;
    public static final int HEIGHT=250;
    private JButton okButton;
    private JPanel mainPanel;

}
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 != '-')
            {
                i--;
                builder.deleteCharAt(i);
            }
        }
    }
      super.insertString(fb,offset,builder.toString(),attr);
}
public void replace(FilterBypass fb,int offset,int length,String string,AttributeSet attr)
    throws BadLocationException {
    if (string != null) {
        StringBuilder builder = new StringBuilder(string);
        for (int i = builder.length() - 1; i >= 0; i--) {
            int cp = builder.codePointAt(i);
            if (!Character.isSupplementaryCodePoint(cp)) {
                i--;
                builder.deleteCharAt(i);
            }
        }
    }
    string=builder.toString();
    }

   super.replace(fb,offset,length,string,attr);
}
}
class FormattedTextFieldVerifier extends InputVerifier
{
    public  boolean verify(JComponent component)
    {
        JFormattedTextField field=(JFormattedTextField) component;
        return field.isEditValid();
    }
}
class IPAddressFormatter extends DefaultFormatter
{
    public String valueToString(Object value)
        throws ParseException
    {
        if (!(value instanceof byte[]))
            throw new ParseException("Not a byte[]",0);
        byte[]a=(byte[]) value;

        if (a.length!=4)throw  new ProtocolException ("length!=4",0);
        StringBuilder builder=new StringBuilder();
    for (int i=0;i<4;i++)
    {
        int b=a[i];
        if (b<0)b+=256;
        builder.append(String.valueOf(b));
        if (i<3)builder.append('.');
    }
    return builder.toString();
    }
    public Object stringToValue(String text)throws ParseException
    {
        StringTokenizer tokenizer=new StringTokenizer(text,".");
    byte[]a=new byte[4];
    for (int i=0;i<4;i++)
    {
        int b=0;
        if (!tokenizer.hasMoreTokens())
            throw  new ParseException("Too few bytes",0);
        try {
            b=Integer.parseInt(tokenizer.nextToken());
        }
        catch (NumberFormatException e)
        {
            throw new ParseException("Not an integer",0);
        }
        if (b<0||b>=256)throw new ParseException("Byte out of range",0);
        a[i]=(byte) b;
    }
    if (tokenizer.hasMoreTokens())throw new ParseException("Too many bytes",0);
    return a;
    }
}

 

请提供信息,说明出现了什么错误,这样别人也能更好地帮助你。