Java 为什么我会得到一个{错误?
我得到java:105:错误:非法字符:\29 } 我正在写一个程序,用户可以点击右/左/上/下按钮,在屏幕上移动一个“球” 我不知道我做错了什么。有人能帮我吗Java 为什么我会得到一个{错误?,java,swing,Java,Swing,我得到java:105:错误:非法字符:\29 } 我正在写一个程序,用户可以点击右/左/上/下按钮,在屏幕上移动一个“球” 我不知道我做错了什么。有人能帮我吗 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Lab2a extends JFrame { Lab2a(){ setTitle("Lab 1b - Application #2"); Lab2Panel p
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Lab2a extends JFrame {
Lab2a(){
setTitle("Lab 1b - Application #2");
Lab2Panel p = new Lab2Panel();
add(p);
}
public static void main(String[] args){
Lab2 frame = new Lab2();
frame.setTitle("Lab2 Application # 1");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
}
}
class Lab2Panel extends JPanel{
Lab2Button canvas = new Lab2Button();
JPanel panel = new JPanel();
Lab2Panel () {
setLayout(new BorderLayout());
JButton leftButton = new JButton("left");
JButton rightButton = new JButton("right");
JButton upButton = new JButton("up");
JButton downButton = new JButton("down");
panel.add(leftButton);
panel.add(rightButton);
panel.add(upButton);
panel.add(downButton);
this.add(canvas, BorderLayout.CENTER);
this.add(panel, BorderLayout.SOUTH);
leftButton.addActionListener(new LeftListener(canvas));
rightButton.addActionListener(new RightListener(canvas));
upButton.addActionListener(new UpListener(canvas));
downButton.addActionListener(new DownListener(canvas));
}
}
class Lab2Button extends JPanel {
int radius = 5;
int x = -1;
int y = -1;
protected void paintComponent(Graphics g){
if (x<0 || y<0) {
x = getWidth() / 2 - radius;
y = getHeight() / 2 - radius;
}
super.paintComponent(g);
g.drawOval(x,y, 2 * radius, 2 * radius);
}
public void moveLeft(){
x -= 5;
this.repaint();
}
public void moveRight(){
x += 5;
this.repaint();
}
public void moveUp(){
y += 5;
this.repaint();
}
public void moveDown(){
y -= 5;
this.repaint();
}
}
class LeftListener implements ActionListener{
private Lab2Button canvas;
LeftListener(Lab2Button canvas) {
this.canvas = canvas;
}
public void actionPerformed(ActionEvent e){
canvas.moveLeft();
}
}
因此,似乎存在一些问题,但与您描述的不完全一样
Lab2帧=新的Lab2()代码>大概应该是Lab2a frame=new Lab2a()
,或者您没有包含Lab2
对象的声明
Lab2
声明因此,似乎存在一些问题,但与您描述的不完全一样
Lab2帧=新的Lab2()代码>大概应该是Lab2a frame=new Lab2a()
,或者您没有包含Lab2
对象的声明
Lab2
声明如果没有行号,很难猜测,但看起来这里有两个不应该使用的紧括号:
public static void main(String[] args){
Lab2 frame = new Lab2();
frame.setTitle("Lab2 Application # 1");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
} <--- EXTRA
}
publicstaticvoidmain(字符串[]args){
Lab2帧=新的Lab2();
frame.setTitle(“Lab2应用程序#1”);
frame.setLocationRelativeTo(空);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置尺寸(600400);
frame.setVisible(true);
}如果没有行号,很难猜测,但这里似乎有两个不应该使用的大括号:
public static void main(String[] args){
Lab2 frame = new Lab2();
frame.setTitle("Lab2 Application # 1");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
} <--- EXTRA
}
publicstaticvoidmain(字符串[]args){
Lab2帧=新的Lab2();
frame.setTitle(“Lab2应用程序#1”);
frame.setLocationRelativeTo(空);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置尺寸(600400);
frame.setVisible(true);
}无法理解错误在哪里
public static void main(String[] args){
Lab2 frame = new Lab2();
}
你是说代码中的Lab2a?无法理解错误在哪里
public static void main(String[] args){
Lab2 frame = new Lab2();
}
你是说代码中的Lab2a吗?我试着使用你的代码并简单地更改(第20行):
到
能在我的机器上正常工作吗。。减去上下颠倒的事实:P
编辑:NetBeans还自动将您的导入解析为:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
从您所拥有的情况来看,这可能是让它为我工作的一部分。我尝试使用您的代码并简单地更改(第20行):
到
能在我的机器上正常工作吗。。减去上下颠倒的事实:P
编辑:NetBeans还自动将您的导入解析为:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
从您所拥有的信息来看,这可能是让它为我工作的一部分。您能告诉我们哪一行是第105行吗?请仔细阅读错误消息,尝试理解它,并仔细缩进代码。我认为代码缩进正确,我数了数大括号,没有发现问题。你能告诉我们哪一行是第105行吗?仔细阅读错误消息,试着理解它,仔细缩进你的代码。我想它缩进得很好,我数了数大括号,我没有看到问题。我起初也这么想,但那是在我做其他类之前关闭类声明的Lab2a
类的括号。这是我一开始想的,但它只是不好的缩进。你指的那个关闭方法,下一个关闭类。这取决于他的意图。这应该是一个包含一堆内部类的类吗?这应该是在一个文件中定义的一组类吗(糟糕)?我一开始也这么认为,但这是关闭Lab2a
类的括号,它在我执行其他类之前关闭类声明这是我一开始的想法,但这只是糟糕的缩进。你指的那个关闭方法,下一个关闭类。这取决于他的意图。这应该是一个包含一堆内部类的类吗?这应该是在单个文件中定义的一组类吗(不好)?是的,我错过了,但它没有修复它。我编辑了代码以显示第105行的位置。我数了数花括号,仍然不知道我做了什么错事,试图将另一个全局类放入另一个文件或使其成为内部类class@user512915你确定吗?我修复了那条线,现在它正在我的机器上运行。同时尝试清理/重建项目。我在这段代码中没有错误。它工作得很好是的,我错过了,但它没有修复它。我编辑了代码以显示第105行的位置。我数了数花括号,仍然不知道我做了什么错事,试图将另一个全局类放入另一个文件或使其成为内部类class@user512915你确定吗?我修复了那条线,现在它正在我的机器上运行。同时尝试清理/重建项目。我在这段代码中没有错误。它起作用了good@user512915你可能有一个隐藏的角色弄乱了那条线。。试着删除它,上面和下面的一行,然后重新键入,因为它对我来说非常好用。好的,谢谢,我们不应该只在课堂上使用IDEtextpad@user512915我将代码复制到一个简单的文本编辑器中,并从终端编译和运行,它仍在为我工作。您的文件名为Lab2a.java是吗?@user512915您可能有一个隐藏字符弄乱了该行。。尝试删除它,删除上面和下面的行并重新键入它们,因为它正在工作