如何在JTextField本身上使用ActionListener使用JTextField显示否定或肯定结果

问题描述 投票:1回答:1

我的程序假设要求用户在JTextField中写一个数字。然后,在另一个不应启用的JTextField中,如果数字为负数或正数,则显示结果。所有这些都必须在没有按钮的情况下完成。

import java.awt.*; 

导入java.awt.event。;导入javax.swing。;

公共类PositiveOrNegative扩展JFrame {

JLabel l1, l2 ;
JTextField t1, t2 ;

public PositiveOrNegative() 
{
    FlowLayout layout = new FlowLayout(); 

    this.setLayout(layout); 

    l1 = new JLabel("Enter a number "); 
    t1 = new JTextField(10) ;
    l2 = new JLabel("The number is  ");
    t2 = new JTextField(10) ;

    this.add(l1); 
    this.add(t1);
    this.add(l2);
    this.add(t2);
    t2.enable(false);
    t2.setBackground(Color.PINK);
}
public void JavaJTextFieldActionListner() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    t1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String n = t1.getText() ;
            int number = Integer.parseInt(n) ;

            if (number >= 0)
                t2.setText("POSITIVE") ;
            else
                t2.setText("NEGATIVE") ;
        }
    });

}

public static void main(String[] args) { 
    PositiveOrNegative p = new PositiveOrNegative(); 
    p.setTitle("AWT SIGN"); 
    p.setBounds(300, 300, 300, 120); 
    p.setVisible(true); 
} 

}

swing awt actionlistener jtextfield
1个回答
1
投票

在您的示例中,您忘记了调用方法JavaJTextFieldActionListner。我将其删除,并将代码移入构造函数。另外,我还添加了对错误输入的处理。结果如下:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField; 

public class PositiveOrNegative extends JFrame {

    JLabel l1, l2 ;
    JTextField t1, t2 ;

    public PositiveOrNegative() {
        FlowLayout layout = new FlowLayout(); 

        this.setLayout(layout); 

        l1 = new JLabel("Enter a number "); 
        t1 = new JTextField(10);
        l2 = new JLabel("The number is  ");
        t2 = new JTextField(10);

        this.add(l1); 
        this.add(t1);
        this.add(l2);
        this.add(t2);
        t2.setEditable(false);
        t2.setBackground(Color.PINK);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        t1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String n = t1.getText();
                try {
                    int number = Integer.parseInt(n);

                    if (number >= 0)
                        t2.setText("POSITIVE");
                    else
                        t2.setText("NEGATIVE");
                } catch (Exception ex) {
                    t2.setText("Not an integer");
                }
            }
        });
    }

    public static void main(String[] args) { 
        PositiveOrNegative p = new PositiveOrNegative(); 
        p.setTitle("AWT SIGN"); 
        p.setBounds(300, 300, 300, 120); 
        p.setVisible(true); 
    } 

}
© www.soinside.com 2019 - 2024. All rights reserved.