-5

请让我声明这是一个家庭作业,任何帮助将不胜感激。

我正在使用 Eclipse (Juno) 编写一个程序,该程序创建一个框架,将一个球放在框架的顶部,并在边框的“南”放置一排按钮。我遇到的问题是在添加按钮的类中,称为 Btns.java,我收到了一些错误。

错误 1:无法将 add 解析为变量 错误 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);

    }   
}
4

3 回答 3

5

在方法括号之前你有额外的点:

代替:

add.(jbtL);
add.(jbtR);
add.(jbtU);
 ...

add(jbtL);
add(jbtR);
add(jbtU);
...
于 2013-01-30T22:13:20.800 回答
4
add()

是从Component&Container类继承的方法,因此您删除点并为您的案例选择正确的实现,请参阅javadocs

于 2013-01-30T22:14:33.487 回答
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());
}
于 2013-01-30T22:18:38.467 回答