这是我到目前为止编写的代码,以及我收到的错误。我确定我之前没有错误地完成了类似的代码。我很确定我错过了一些愚蠢的东西,但我无法弄清楚或在网上找到任何东西。
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame {
JPanel mainPanel = new JPanel();
JButton editButton = new JButton("Edit");
JPanel.add(editButton);
}
错误:
Syntax error on token(s), misplaced construct(s) - for the underlined '.'
on the last line
Syntax error on token "editButton", VariableDeclaratorId expected after this
token - for the underlined parameter within the brackets on the last line.
答案 0 :(得分:5)
您正在尝试使用它,就像它是静态方法一样 - 您希望将哪个面板添加到编辑按钮?您需要在 mainPanel
:
mainPanel.add(editButton);
但是,你不能在类声明中这样做 - 像这样的语句必须在方法或构造函数中。所以你可能想要:
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame {
JPanel mainPanel = new JPanel();
JButton editButton = new JButton("Edit");
public MyFrame() {
mainPanel.add(editButton);
}
}
或者可能将所有初始化放入构造函数中,并将变量设为final和private:
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame {
private final JPanel mainPanel;
private final JButton editButton;
public MyFrame() {
mainPanel = new JPanel();
editButton = new JButton("Edit");
mainPanel.add(editButton);
}
}
答案 1 :(得分:2)
按如下方式使用。
mainPanel.add(editButton);
您必须通过它的对象调用它,而不是将其与类名相关联,因为它不是静态方法。