微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JTextField不会如预期的那样将值从文本字段传递到对象字段

如何解决JTextField不会如预期的那样将值从文本字段传递到对象字段

我正在使用javax.swing软件包编写2D绘图应用程序。这个想法是创建一个DrawingApplicationFrame(扩展Jframe类),其中实例化几个JButttonJCheckBoxJTextFields来改变绘画的状态,以及嵌入在DrawingPanel类中的drawpanel实例DrawingApplicationFrame之外。我使用JTextField实例linewidthTextDashLengthText来更改实例Width的{​​{1}}和Length属性。但是,文本字段似乎不接受其中的值并更改了drawpaneldrawpanel.Width的值。如何解决错误以使文本字段传递值

以下是文本字段drawpanel.LengthlinewidthText的侦听器的创建:

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”键!事实证明,该代码可以正常工作。仅当在没有任何进一步操作的情况下将值简单地输入到文本字段中时,它才起作用!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。