Java 我的表达是非法的,我不';我不知道为什么
当我编译这一行时,第74行作为表达式的非法开始出现,这是为什么? 我完全无法理解这一点,任何帮助都将不胜感激 多谢各位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
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行。让我们更容易些,以便我们能更快地帮助您;)