JFormattedTextField intField1 = new JFormattedTextField(NumberFormat.getIntegerInstance());
intField1.setValue(new Integer(0));
比如我创建了这样一个intField1实例。
但是在文本框中获取输入的数字时
Integer value = (Integer) intField1.getValue();
却总是产生异常 Long 不能转为Integer??
明明format就是Integer类型的啊。。
小弟刚学java。不明白,前来请教。。
intField1.setValue(new Integer(0));
比如我创建了这样一个intField1实例。
但是在文本框中获取输入的数字时
Integer value = (Integer) intField1.getValue();
却总是产生异常 Long 不能转为Integer??
明明format就是Integer类型的啊。。
小弟刚学java。不明白,前来请教。。
的返回类型成为Integer?
在创建的时候不是就申明了是
NumberFormat.getIntegerInstance();
刚刚查了下doc 说NumberFormat.getIntegerInstance()返回的是默认的整数类型,就是说也可能是Long?
import javax.swing.event.*;
import javax.swing.*;
import javax.swing.event.DocumentListener;
import javax.swing.text.*;
import java.awt.*;
import java.text.*;
public class TestJFormatedTextField extends JFrame implements DocumentListener{ JFormattedTextField intField1 = new JFormattedTextField(NumberFormat.getIntegerInstance());
JFormattedTextField intField2 = new JFormattedTextField(NumberFormat.getIntegerInstance());
Document doc;
Long j = new Long(0);
TestJFormatedTextField()
{
// intField.setBounds(20, 20, 40, 40);
setSize(200,200);
setLayout(new FlowLayout());
intField1.setColumns(4);
doc = intField1.getDocument();
intField2.setColumns(4);
intField1.setValue(new Long(0));
JPanel panel = new JPanel();
panel.add(intField1);
add(panel);
add(intField2);
doc.addDocumentListener(this);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void removeUpdate(DocumentEvent e)
{
set(e);
}
public void insertUpdate(DocumentEvent e){
set(e);
}
public void changedUpdate(DocumentEvent e){
set(e);
}
private void set(DocumentEvent e){
j = (Long) intField1.getValue();
intField2.setText(String.valueOf(j));
}
public static void main(String[] args)
{
TestJFormatedTextField t =new TestJFormatedTextField();
}
}我把代码贴出来吧。就是那个j是Integer类型的时候为什么不可行?