请允许我声明这是作业作业,我们将不胜感激。
我正在使用Eclipse(Juno)编写一个程序来创建一个框架,将一个球放在框架的顶部,并在边框的“南部”放置一排按钮。我遇到的问题是在添加按钮的类中,称为Btns.java,我收到了一些错误。
错误1:添加无法解析为变量 错误2:构造函数调用必须是构造函数中的第一个语句 错误3:令牌“。”上的语法错误,超出此标记后的预期
代码看起来对我来说是正确的。
Btns类的代码如下。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Btns extends JFrame
{
public Btns()
{
JButton jbtL = new JButton("Left");
JButton jbtR = new JButton("Right");
JButton jbtU = new JButton("Up");
JButton jbtD = new JButton("Down");
JButton jbtRd = new JButton("Red");
JButton jbtG = new JButton("Green");
add.(jbtL);
add.(jbtR);
add.(jbtU);
add.(jbtD);
add.(jbtRd);
add.(jbtG);
}
}
Lab2.java代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Lab2 extends JFrame {
public Lab2()
{
setLayout(new BorderLayout());
add(new Ball(), BorderLayout.CENTER);
add(new Btns(), BorderLayout.SOUTH);
}
public static void main (String[] args) {
Lab2 frame = new Lab2();
frame.setTitle("Move The Ball");
frame.setSize(450, 700);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
答案 0 :(得分:5)
在方法括号之前,您有额外的点:
替换:
add.(jbtL);
add.(jbtR);
add.(jbtU);
...
与
add(jbtL);
add(jbtR);
add(jbtU);
...
答案 1 :(得分:4)
add()
是来自Component
&的继承方法。 Container
类,因此您删除了点并为您的案例选择了正确的实现,请参阅javadocs
答案 2 :(得分:0)
您是否编写过Java代码?
public Btns()
{
JButton jbtL = new JButton("Left");
JButton jbtR = new JButton("Right");
JButton jbtU = new JButton("Up");
JButton jbtD = new JButton("Down");
JButton jbtRd = new JButton("Red");
JButton jbtG = new JButton("Green");
super.add(jbtL);
super.add(jbtR);
this.add(jbtU);
super.add(jbtD);
add(jbtRd);
add(jbtG);
}
点用作分辨率范围运算符,表示某些东西是某个类的成员。上面的super
表示超级JFrame
,它具有从add
派生的方法Component
。 this
表示当前对象,其类型为Btns
,其中add
的方法也是JFrame
。
this
和super
不是必需的限定符,因此最后两个调用不使用super.
此外,如果要将Btns
类型的对象添加到主框架,则应扩展JInternalFrame
而不是JFrame
。
public class Btns extends javax.swing.JInternalFrame {
然后是构造函数:
public Lab2() {
JDesktopPane p = new JDesktopPane();
add(p);
p.add(new Btns());
}