我正在尝试在Beanshell中创建一个简单的对话框-它应该读取三个可编辑文本字段的内容,并在按下按钮时相应地执行一个简单的任务。我完全被一个错误弄晕了,因为我到达了我无法读取某些字段中的文本的地方。
代码如下:
// Set up the text fields
textField_Y= new JFormattedTextField();
textField_Y.setValue(150);
textField_Y.setColumns(4);
textField_Y.setEditable(true);
textField_X= new JFormattedTextField();
textField_X.setValue(0);
textField_X.setColumns(4);
textField_X.setEditable(true);
textField_n= new JFormattedTextField();
textField_n.setValue(20);
textField_n.setColumns(4);
textField_n.setEditable(true);
button = new JButton("Generate Stage Position List");
// some Code here to arrange the items within a GUI window
// Try to read the values
button.addActionListener(new ActionListener() {
actionPerformed(ActionEvent eText) {
//Get info from dialog
yShift = textField_Y.getText();
xShift = textField_X.getText();
nPos = Integer.parseInt(textField_n.getText());
print(xshift+" "+yshift+" "+nPos);
});
我运行它,对话框正确显示。我没有更改任何值,只需单击按钮,它应该显示“ 150 0 20”。而是打印“ void void 20”。我没有最清楚的线索,为什么一个字段返回正确的数字,而另两个字段返回空。他们应该都一样!有人可以帮忙吗?
答案 0 :(得分:2)
首先,看一下这段代码...
button.addActionListener(new ActionListener() {
actionPerformed(ActionEvent eText) {
//Get info from dialog
yShift = textField_Y.getText();
xShift = textField_X.getText();
nPos = Integer.parseInt(textField_n.getText());
print(xshift+" "+yshift+" "+nPos);
});
yShift
!= yshift
和xShift
!= xshift
。请记住,Java区分大小写。
我还建议您使用getValue
而不是getText