Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的表达是非法的,我不';我不知道为什么_Java_Syntax_Expression_Actionlistener - Fatal编程技术网

Java 我的表达是非法的,我不';我不知道为什么

Java 我的表达是非法的,我不';我不知道为什么,java,syntax,expression,actionlistener,Java,Syntax,Expression,Actionlistener,当我编译这一行时,第74行作为表达式的非法开始出现,这是为什么? 我完全无法理解这一点,任何帮助都将不胜感激 多谢各位 import java.awt.*; import javax.swing.*; public class NumericKeypadPanel2 extends JPanel { public NumericKeypadPanel2() { String num = " "; JPanel panel_main = new

当我编译这一行时,第74行作为表达式的非法开始出现,这是为什么? 我完全无法理解这一点,任何帮助都将不胜感激 多谢各位

import java.awt.*;
import javax.swing.*;

public class NumericKeypadPanel2 extends JPanel
{
    public NumericKeypadPanel2()
    {
        String num = " ";


        JPanel panel_main = new JPanel();
        panel_main.setLayout(new BorderLayout());

        JPanel keypad = new JPanel();
        keypad.setLayout(new GridLayout (4, 3));
        keypad.setBorder (BorderFactory.createLineBorder (Color.black, 3));

        JButton b1 = new JButton ("1");
        JButton b2 = new JButton ("2");
        JButton b3 = new JButton ("3");
        JButton b4 = new JButton ("4");
        JButton b5 = new JButton ("5");
        JButton b6 = new JButton ("6");
        JButton b7 = new JButton ("7");
        JButton b8 = new JButton ("8");
        JButton b9 = new JButton ("9");
        JButton b10 = new JButton ("*");
        JButton b11 = new JButton ("0");
        JButton b12 = new JButton ("#");

        NumListener listener = new NumListener();

        b1.addActionListener (listener);

        keypad.add (b1);
        keypad.add (b2);
        keypad.add (b3);
        keypad.add (b4);
        keypad.add (b5);
        keypad.add (b6);
        keypad.add (b7);
        keypad.add (b8);
        keypad.add (b9);
        keypad.add (b10);
        keypad.add (b11);
        keypad.add (b12);

        panel_main.add(keypad, BorderLayout.CENTER);

        JButton clear = new JButton ("Clear");

        JLabel display = new JLabel(num);

        panel_main.add(clear, BorderLayout.SOUTH);
        panel_main.add(display, BorderLayout.NORTH);
        display.setBorder (BorderFactory.createLineBorder (Color.black, 3));

        add(panel_main);

        private class NumListener implements ActionListener
        {
            public void actionPerformed (ActionEvent event)
            {
                Object source = event.getSource();

                switch (source)
                {
                case b1:
                    display.setText(display.getText()+"1");
                    break;

                case b2:
                    display.setText(display.getText()+"2");
                    break;

                case b3:
                    display.setText(display.getText()+"3");
                    break;

                case b4:
                    display.setText(display.getText()+"4");
                    break;

                case b5:
                    display.setText(display.getText()+"5");
                    break;

                case b6:
                    display.setText(display.getText()+"6");
                    break;

                case b7:
                    display.setText(display.getText()+"7");
                    break;

                case b8:
                    display.setText(display.getText()+"8");
                    break;

                case b9:
                    display.setText(display.getText()+"9");
                    break;

                case b10:
                    display.setText(display.getText()+"*");
                    break;

                case b11:
                    display.setText(display.getText()+"0");
                    break;

                case b12:
                    display.setText(display.getText()+"#");
                    break;
                }


            }
        }



    }
}
只是一个猜测:

 Object source = event.getSource();
 switch (source){ <-- ERROR
objectsource=event.getSource();
开关(源){只是一个猜测:

 Object source = event.getSource();
 switch (source){ <-- ERROR
objectsource=event.getSource();

switch(source){正如Edward在下面所说的,switch语句不适用于正则(?)对象。它们只适用于
int
short
char
byte
类型。它们也适用于枚举。我的建议是-使用if/else if语句并将操作侦听器添加到所有按钮,这样它们就链接到
actionPerformed
方法:

@Override
public void actionPerformed(ActionEvent e) {
    Object o = e.getSource();
    if(o.equals(b1)) display.setText(display.getText()+"1");
    else if(o.equals(b1)) display.setText(display.getText()+"1");
    else if(o.equals(b2)) display.setText(display.getText()+"2");
    else if(o.equals(b3)) display.setText(display.getText()+"3");
    else if(o.equals(b4)) display.setText(display.getText()+"4");
    else if(o.equals(b5)) display.setText(display.getText()+"5");
    else if(o.equals(b6)) display.setText(display.getText()+"6");
    else if(o.equals(b7)) display.setText(display.getText()+"7");
    else if(o.equals(b8)) display.setText(display.getText()+"8");
    else if(o.equals(b9)) display.setText(display.getText()+"9");
    else if(o.equals(b10)) display.setText(display.getText()+"*");
    else if(o.equals(b11)) display.setText(display.getText()+"0");
    else if(o.equals(b12)) display.setText(display.getText()+"#");
}

正如Edward在下面所说,switch语句不适用于正则(?)对象。它们只适用于
int
short
char
byte
类型。它们也适用于枚举。我的建议是-使用if/else if语句并将操作侦听器添加到所有按钮,这样它们就链接到
actionPerformed
方法:

@Override
public void actionPerformed(ActionEvent e) {
    Object o = e.getSource();
    if(o.equals(b1)) display.setText(display.getText()+"1");
    else if(o.equals(b1)) display.setText(display.getText()+"1");
    else if(o.equals(b2)) display.setText(display.getText()+"2");
    else if(o.equals(b3)) display.setText(display.getText()+"3");
    else if(o.equals(b4)) display.setText(display.getText()+"4");
    else if(o.equals(b5)) display.setText(display.getText()+"5");
    else if(o.equals(b6)) display.setText(display.getText()+"6");
    else if(o.equals(b7)) display.setText(display.getText()+"7");
    else if(o.equals(b8)) display.setText(display.getText()+"8");
    else if(o.equals(b9)) display.setText(display.getText()+"9");
    else if(o.equals(b10)) display.setText(display.getText()+"*");
    else if(o.equals(b11)) display.setText(display.getText()+"0");
    else if(o.equals(b12)) display.setText(display.getText()+"#");
}

这似乎不是我的问题,ide指向行私有类NumListener implements ActionListener作为错误,这真的很奇怪。此外,您不能在本地嵌套类上使用访问修饰符。(不允许使用私有)我将私有更改为公共,但仍然收到错误。不,您不能使用任何访问修饰符。。(不允许使用公共、受保护、私有)。只需将其保留为“class NumListener implements ActionListener”这似乎不是我的问题,ide指向行private class NumListener implements ActionListener作为错误,这真的很奇怪。此外,您不能在本地嵌套类上使用访问修饰符。(不允许私有)我已将私有更改为公共,但仍收到错误。否,您不能使用任何访问修饰符…(不允许使用公共、受保护、私有)。只需将其保留为“类NumListener实现ActionListener”注意switch语句中的字符串受Java 1.7支持,此处也标注了尺寸。注意switch语句中的字符串受Java 1.7支持,此处也标注了尺寸@Tjoudrey:请下次在出现问题的行中写注释。现在我们必须复制您的代码并检查WAR是第74行。让我们更容易,以便我们可以帮助您更快;@Tjoudrey:请下次在问题所在的行写评论。现在我们必须复制您的代码并检查WAR是第74行。让我们更容易些,以便我们能更快地帮助您;)