【问题标题】:How to check ov JTextField in actionperformed如何在 actionperformed 中检查 ov JTextField
【发布时间】:2014-03-11 11:56:16
【问题描述】:

我有一个用户可以输入数字的 JTextField。

我如何检查他们输入的数字是否大于0?

我对此很陌生,如果对您来说有点明显,请见谅。

这是我的代码

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;


public class TaxiFrame extends JFrame implements ActionListener {


      private JLabel L1 = new JLabel("Number of Taxis:");
      private JLabel L2 = new JLabel("Type an integer and press enter");
      private JTextField t1 = new JTextField ("            ");




    public TaxiFrame() {
        super("This is the Frame");
        setSize(500, 300);
        getContentPane().setBackground(Color.CYAN);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new BorderLayout(10, 10));

         JPanel p = new JPanel();     


         p.setOpaque(false);
         p.add(L1);
         getContentPane().
         add("South", p);

          p.setOpaque(false);
          p.add(t1);
          getContentPane().
          add("South", p);

          p.setOpaque(false);
          p.add(L2);
          getContentPane().
          add("South", p);

        setVisible(true);

        t1.addActionListener(this);

    }

    public static void main(String[] args) {
        new TaxiFrame();
    }


    public void actionPerformed(ActionEvent e)
    {

        if (e.getSource() == t1)
        {

        }

    }

}

【问题讨论】:

  • 非常好,只是我需要的一点代码:D 谢谢

标签: java jtextfield


【解决方案1】:
  1. 从 JTextField 中获取文本。在 JTextField 上调用 getText() 将执行此操作。查看JTextField tutorial 了解更多信息。
  2. 使用Integer.parseInt(...) 将字符串解析为int。
  3. 检查是否 > 0。

以后,将所有此类问题分解为各个步骤,并尝试一次解决每个步骤。这样做将帮助您自己找到解决方案。

【讨论】:

    【解决方案2】:

    试试这个,

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Random;
    import javax.swing.*;
    
    
    public class TaxiFrame extends JFrame implements ActionListener {
    
    
          private JLabel L1 = new JLabel("Number of Taxis:");
          private JLabel L2 = new JLabel("Type an integer and press enter");
          private JTextField t1 = new JTextField ("            ");
    
    
    
    
        public TaxiFrame() {
            super("This is the Frame");
            setSize(500, 300);
            getContentPane().setBackground(Color.CYAN);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setLayout(new BorderLayout(10, 10));
    
             JPanel p = new JPanel();     
    
    
             p.setOpaque(false);
             p.add(L1);
             getContentPane().
             add("South", p);
    
              p.setOpaque(false);
              p.add(t1);
              getContentPane().
              add("South", p);
    
              p.setOpaque(false);
              p.add(L2);
              getContentPane().
              add("South", p);
    
            setVisible(true);
    
            t1.addActionListener(this);
    
        }
    
        public static void main(String[] args) {
            new TaxiFrame();
        }
    
    
        public void actionPerformed(ActionEvent e)
        {
    
            if (e.getSource() == t1)
            {
                if(Integer.parseInt(t1.getText().trim()) > 0)
                {
                    //Do here
                }
            }
    
        }
    
    }
    

    【讨论】:

      【解决方案3】:
       use "textfieldfilter" by making class JTextFieldFilter
      

      JTextField limiting character amount input and accepting numeric only 并在@Override public void insertString 函数提供您的条件

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 2016-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-12
        • 2018-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多