java初学者if/else if问题

标签 java

尝试设置 String 变量的代码块似乎出了问题,因为无论我在运行程序时做什么,对话框总是显示 otto。有谁知道我在这里做错了什么?

谢谢, 拉文

import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class SmallTingz extends JFrame {
    private JLabel item1;
    private JTextField tf;
    private JTextField tf2;
    private JTextField tf3;
    private JPasswordField pf;

    public SmallTingz() {
        super("The Title");
        setLayout(new FlowLayout());
        JTextField tf = new JTextField("Cool Beans");
        JTextField tf2 = new JTextField("UnCool Beans");
        JTextField tf3 = new JTextField("Hot Beans");
        JPasswordField pf = new JPasswordField("password");

        add(tf);
        add(tf2);
        add(tf3);
        add(pf);

        thehandler handler = new thehandler();
        tf.addActionListener(handler);
        tf2.addActionListener(handler);
        tf3.addActionListener(handler);
        pf.addActionListener(handler);
    }

    private class thehandler implements ActionListener {

        public void actionPerformed(ActionEvent event) {
            String string;          
            if (event.getSource() == tf)
                string=String.format("field1: %s", event.getActionCommand());
            else if (event.getSource() == tf2)
                string=String.format("field2: %s", event.getActionCommand());
            else if (event.getSource() == tf3)
                string=String.format("field3: %s", event.getActionCommand());
            else if (event.getSource() == pf)
                string=String.format("passfield: %s", event.getActionCommand());
            else
                string="otto";

            JOptionPane.showMessageDialog(null, string);        
        }
    }
}

最佳答案

在您的 SmallTingz() 构造函数中,删除所有变量声明。您的声明是 hiding成员变量。

改变

JTextField tf = new JTextField("Cool Beans");
JTextField tf2 = new JTextField("UnCool Beans");
JTextField tf3 = new JTextField("Hot Beans");
JPasswordField pf = new JPasswordField("password");

tf = new JTextField("Cool Beans");
tf2 = new JTextField("UnCool Beans");
tf3 = new JTextField("Hot Beans");
pf = new JPasswordField("password");

关于java初学者if/else if问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777908/

相关文章:

java - 无法在扩展 PropertyChangeListener 的 Main 类中拦截 PropertyChangeEvent,为什么?

java - 在 JTextArea 上突出显示文本

java - 在 HDP 2.0 上运行 hadoop map reduce java 程序时出错

java - 将 POST 数据从 Android 应用程序发送到 PHP MySQL

java - 如何通过 java 服务器使用 GCM 向 android 设备发送推送通知?

java - PendingTransactionsTest 类型的给定方法未定义

java - ArrayList 不保存我的值

java - Facebook OAuth redirect_uri 问题

java - pig 拉丁语程序 - 元音问题

java - 如何从另一个单独的类更改 java Cardlayout