gpt4 book ai didi

java - 使用 ActionListener 比较两个 JTextField

转载 作者:行者123 更新时间:2023-12-01 10:29:07 24 4
gpt4 key购买 nike

我想做的是使用 ActionListener 比较 JFrame 中 TextField 的两个输入。如果两个输入相等并且用户点击按钮,则会弹出一个消息对话框并显示“相等”。如果它们不相等,则会弹出一个消息对话框并显示“不相等”。我正在运行框架和 ActionListener,我只是不知道如何从 TextFields 获取输入并比较它们。

例如,如果用户输入这样的内容, Equal TextFields ,这会弹出,Equal Message

这是我的主类(class):

public class LabFiveOne
{

public static void main(String[] args)
{
JFrame frame = new JFrame("String Equality Program");

JTextField tf1 = new JTextField(10);
tf1.setActionCommand(tf1.toString());
tfListener tfListen = new tfListener(tf1);
JTextField tf2 = new JTextField(10);
tf2.setActionCommand(tf2.toString());
JButton chEq = new JButton("Check Equality");
chEq.addActionListener(tfListen);

JPanel nPanel = new JPanel();
nPanel.add(tf1);
nPanel.add(tf2);
frame.add(nPanel, BorderLayout.NORTH);
JPanel sPanel = new JPanel();
sPanel.add(chEq);
frame.add(sPanel, BorderLayout.SOUTH);
nPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
frame.pack();

frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

这是我的 ActionListener 类:

class tfListener implements ActionListener
{
private final JTextField tf3;

public tfListener(JTextField nameTF)
{
tf3 = nameTF;
}

@Override
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("abc"))
{
JOptionPane.showMessageDialog(null, "equal");
}
else
{
JOptionPane.showMessageDialog(null, "not equal");
}
}
}

最佳答案

编辑:好的,而不是尝试将 ActionListener 类中的构造函数更改为

公共(public) tfListener(JTextField tf1, JTextField tf2){

{

嗨:)只要别想太多,你应该没问题。简单的方法是直接在主类中实现 ActionListener,如下所示:

public class LabFiveOne
{

public static void main(String[] args)
{
JFrame frame = new JFrame("String Equality Program");

final JTextField tf1 = new JTextField(10);
tf1.setActionCommand(tf1.toString());
tfListener tfListen = new tfListener(tf1);
final JTextField tf2 = new JTextField(10);
tf2.setActionCommand(tf2.toString());
JButton chEq = new JButton("Check Equality");
chEq.addActionListener(tfListen);


JPanel nPanel = new JPanel();
nPanel.add(tf1);
nPanel.add(tf2);
frame.add(nPanel, BorderLayout.NORTH);
JPanel sPanel = new JPanel();
sPanel.add(chEq);
frame.add(sPanel, BorderLayout.SOUTH);
nPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
frame.pack();

frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

{

class tfListener implements ActionListener
{
private final String tf1text;
private final String tf2text;


public tfListener(JTextField tf1, JTextField tf2)
{
tf1text = new String(tf1.getText());
tf1text = new String(tf2.getText());

}

@Override
public void actionPerformed(ActionEvent e)
{
if(tf1text.equal(tf2text))
{
JOptionPane.showMessageDialog(null, "equal");
}
else
{
JOptionPane.showMessageDialog(null, "not equal");
}
}

}}

关于java - 使用 ActionListener 比较两个 JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com