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

许绍恩

我正在使用javax.swing程序包编写2D绘图应用程序。这个想法是要创建一个DrawingApplicationFrame(扩展Jframe类),除了实例中嵌入的一个实例还实例化几个JButtton来更改绘画的状态我使用实例更改实例属性但是,文本字段似乎不接受其中的值以及更改值。如何解决错误以使文本字段传递值?JCheckBoxJTextFieldsDrawingPaneldrawpanelDrawingApplicationFrameJTextFieldLineWidthTextDashLengthTextWidthLengthdrawpaneldrawpanel.Widthdrawpanel.Length

这是文本字段LineWidthText的侦听器的创建DashLengthText

    JTextField LineWidthText=new JTextField(2);
    JTextField DashLengthText=new JTextField(2);
        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, 0, 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, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{drawpanel.Length}, 10);     
          }
          });

这是DrawPanel类的代码:

    public class DrawPanel extends JPanel
    {
        Color ColorOne=Color.BLACK;
        Color ColorTwo=Color.BLACK;
        Boolean FilledOrNot=false, UseGradientOrNot=false, DashedOrNot=false, isDragged=false;
        float Width=10;
        float Length=10;
        String ShapeChoice="Line";
        ArrayList<MyShapes> ShapeObjects=new ArrayList<MyShapes>();
        
        Paint gradient=new GradientPaint(100, 100, ColorOne, 100+Width*2, 100+Width*2, ColorTwo, true);
        Paint mono=new GradientPaint(100, 100, ColorOne, 100+Width*2, 100+Width*2, ColorOne, true);
        Stroke dashed=new BasicStroke(Width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{Length}, 10);
        Stroke concrete=new BasicStroke(Width);

        Point start=new Point();
        Point stop=new Point();
        Point drag=new Point();
        
        JLabel label=new JLabel("(,)");
        
        public DrawPanel(String caption)
        {
          this.setBackground(Color.WHITE);
          this.setLayout(new BorderLayout());
          this.add(label, BorderLayout.SOUTH);
          this.label.setVisible(true);
        }

        @Override
        @SuppressWarnings("empty-statement")
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g;
            //loop through and draw each shape in the shapes arraylist
            addMouseListener(new MouseHandler());
            for(int i=0; i<ShapeObjects.size(); i++){
                ShapeObjects.get(i).draw(g2d);
                }  
            }
        
        void removeLastElement(){
          ShapeObjects.remove(ShapeObjects.size()-1);
          repaint();
        }
        
        void clearAllElements(){
          ShapeObjects.clear();
          repaint();
        }
        
        public void addShape(MyShapes shape){
          ShapeObjects.add(shape);
        }

        public class MouseHandler extends MouseAdapter implements MouseMotionListener
        {

            
            public void mousePressed(MouseEvent event)
            {
                DrawPanel dp=(DrawPanel) event.getSource();
                dp.start=(new Point(event.getX(), event.getY()));
            }
   
            public void mouseReleased(MouseEvent event)
            {
                DrawPanel dp=(DrawPanel) event.getSource();
                dp.stop=(new Point(event.getX(), event.getY()));
                switch(ShapeChoice){
                  
                    case "Line":
                        if(UseGradientOrNot&&DashedOrNot)
                          dp.addShape(new MyLine(dp.start, dp.stop, dp.gradient, dp.dashed));
                        else if((UseGradientOrNot==false)&&DashedOrNot)
                          dp.addShape(new MyLine(dp.start, dp.stop, dp.mono, dp.dashed));
                        else if(UseGradientOrNot&&(DashedOrNot==false))
                          dp.addShape(new MyLine(dp.start, dp.stop, dp.gradient, dp.concrete));
                        else if((UseGradientOrNot==false)&&(DashedOrNot)==false)
                          dp.addShape(new MyLine(dp.start, dp.stop, dp.mono, dp.concrete));
                        break;
                        
                    case "Oval":
                        if(UseGradientOrNot&&DashedOrNot)
                          dp.addShape(new MyOval(dp.start, dp.stop, dp.gradient, dp.dashed, dp.FilledOrNot));
                        else if((UseGradientOrNot==false)&&DashedOrNot)
                          dp.addShape(new MyOval(dp.start, dp.stop, dp.mono, dp.dashed, dp.FilledOrNot));
                        else if(UseGradientOrNot&&(DashedOrNot==false))
                          dp.addShape(new MyOval(dp.start, dp.stop, dp.gradient, dp.concrete, dp.FilledOrNot));
                        else if((UseGradientOrNot==false)&&(DashedOrNot)==false)
                          dp.addShape(new MyOval(dp.start, dp.stop, dp.mono, dp.concrete, dp.FilledOrNot));
                        break;
                        
                    case "Rectangle":
                        if(UseGradientOrNot&&DashedOrNot)
                          dp.addShape(new MyRectangle(dp.start, dp.stop, dp.gradient, dp.dashed, dp.FilledOrNot));
                        else if((UseGradientOrNot==false)&&DashedOrNot)
                          dp.addShape(new MyRectangle(dp.start, dp.stop, dp.mono, dp.dashed, dp.FilledOrNot));
                        else if(UseGradientOrNot&&(DashedOrNot==false))
                          dp.addShape(new MyRectangle(dp.start, dp.stop, dp.gradient, dp.concrete, dp.FilledOrNot));
                        else if((UseGradientOrNot==false)&&(DashedOrNot)==false)
                          dp.addShape(new MyRectangle(dp.start, dp.stop, dp.mono, dp.concrete, dp.FilledOrNot));
                        break;
                  }
                        
                    repaint();
                }
        }

    }
许绍恩

由我自己解决。有两种方法:一种是从按钮上的文本字段分配值检索任务。另一个只需按“ Enter”键!事实证明,该代码可以正常工作。仅当在没有任何进一步操作的情况下将值简单地输入到文本字段中时,它才起作用!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文本字段值不会传递到另一页

来自分类Dev

文本字段值不会传递到另一页

来自分类Dev

将值从子窗口传递到父窗口中的文本字段

来自分类Dev

如何将文本字段值从jsp传递到Java类

来自分类Dev

将值从输入文本字段传递到控制器

来自分类Dev

javascript将值从“选择多个”传递到选定的文本字段

来自分类Dev

将addEventListener设置为数组中的元素不会在文本字段中设置预期值-Javascript

来自分类Dev

文本字段未正确传递值

来自分类Dev

将下拉值插入文本字段

来自分类Dev

传递对象作为道具并将嵌套的表单值与Vuetify文本字段同步

来自分类Dev

将文本字段数据传递到另一个视图

来自分类Dev

将文本字段输入从子组件传递到父组件

来自分类Dev

将变量传递到引导模式中的输入文本字段

来自分类Dev

将Javascript对象传递给Function并更改文本字段

来自分类Dev

捕获数据并将其传递到文本字段

来自分类Dev

如何在flutter中将语音传递到文本字段?

来自分类Dev

如何设置对象从字典到字符串值以更新视图文本字段?

来自分类Dev

设置文本字段值而不会失去焦点

来自分类Dev

我的JS / JQuery不会更新我的文本字段值

来自分类Dev

我的JS / JQuery不会更新我的文本字段值

来自分类Dev

将文本从文本字段复制到textarea +标签

来自分类Dev

将文本从文本字段复制到textarea +标签

来自分类Dev

ASP.Net将文本字段值传递给其他网页上的标签

来自分类Dev

Mapreduce映射器将键和值都作为文本字段传递

来自分类Dev

如何将文本字段的值传递给 Swift3 中的按钮单击函数?

来自分类Dev

如何使用HtmlService将值从Google电子表格检索到文本字段

来自分类Dev

将多个值从一个文本字段存储到数组中

来自分类Dev

从文本字段检索值

来自分类Dev

使用javascript从输入文本字段检索json对象值

Related 相关文章

  1. 1

    文本字段值不会传递到另一页

  2. 2

    文本字段值不会传递到另一页

  3. 3

    将值从子窗口传递到父窗口中的文本字段

  4. 4

    如何将文本字段值从jsp传递到Java类

  5. 5

    将值从输入文本字段传递到控制器

  6. 6

    javascript将值从“选择多个”传递到选定的文本字段

  7. 7

    将addEventListener设置为数组中的元素不会在文本字段中设置预期值-Javascript

  8. 8

    文本字段未正确传递值

  9. 9

    将下拉值插入文本字段

  10. 10

    传递对象作为道具并将嵌套的表单值与Vuetify文本字段同步

  11. 11

    将文本字段数据传递到另一个视图

  12. 12

    将文本字段输入从子组件传递到父组件

  13. 13

    将变量传递到引导模式中的输入文本字段

  14. 14

    将Javascript对象传递给Function并更改文本字段

  15. 15

    捕获数据并将其传递到文本字段

  16. 16

    如何在flutter中将语音传递到文本字段?

  17. 17

    如何设置对象从字典到字符串值以更新视图文本字段?

  18. 18

    设置文本字段值而不会失去焦点

  19. 19

    我的JS / JQuery不会更新我的文本字段值

  20. 20

    我的JS / JQuery不会更新我的文本字段值

  21. 21

    将文本从文本字段复制到textarea +标签

  22. 22

    将文本从文本字段复制到textarea +标签

  23. 23

    ASP.Net将文本字段值传递给其他网页上的标签

  24. 24

    Mapreduce映射器将键和值都作为文本字段传递

  25. 25

    如何将文本字段的值传递给 Swift3 中的按钮单击函数?

  26. 26

    如何使用HtmlService将值从Google电子表格检索到文本字段

  27. 27

    将多个值从一个文本字段存储到数组中

  28. 28

    从文本字段检索值

  29. 29

    使用javascript从输入文本字段检索json对象值

热门标签

归档