问题描述
我正在使用javax.swing
软件包编写2D绘图应用程序。这个想法是创建一个DrawingApplicationFrame
(扩展Jframe
类),其中实例化几个JButtton
,JCheckBox
,JTextFields
来改变绘画的状态,以及嵌入在DrawingPanel
类中的drawpanel
实例DrawingApplicationFrame
之外。我使用JTextField
实例linewidthText
和DashLengthText
来更改实例Width
的{{1}}和Length
属性。但是,文本字段似乎不接受其中的值并更改了drawpanel
和drawpanel.Width
的值。如何解决错误以使文本字段传递值?
以下是文本字段drawpanel.Length
和linewidthText
的侦听器的创建:
DashLengthText
JTextField linewidthText=new JTextField(2);
JTextField DashLengthText=new JTextField(2);
这是DrawPanel类的代码:
linewidthText.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
drawpanel.Width=Float.parseFloat(linewidthText.getText());
drawpanel.dashed=new Basicstroke(drawpanel.Width,Basicstroke.CAP_BUTT,Basicstroke.JOIN_BEVEL,new float[]{drawpanel.Length},10);
drawpanel.concrete=new Basicstroke(drawpanel.Width);
}
});
DashLengthText.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
drawpanel.Length=Float.parseFloat(DashLengthText.getText());
drawpanel.dashed=new Basicstroke(drawpanel.Width,10);
}
});
解决方法
这是我自己解决的。有两种方法:一种是从按钮上的文本字段分配值检索任务。另一个只需按“ Enter”键!事实证明,该代码可以正常工作。仅当在没有任何进一步操作的情况下将值简单地输入到文本字段中时,它才起作用!