Java JPanel.add (...) не работает - PullRequest
1 голос
/ 20 ноября 2011

Вот мой код, который я написал до сих пор, наряду с ошибками, которые я получаю. Я уверен, что я сделал подобный код раньше без ошибок. Я почти уверен, что упускаю что-то глупое, но я не могу этого понять или найти что-либо в Интернете.

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.

Ответы [ 2 ]

5 голосов
/ 20 ноября 2011

Вы пытаетесь использовать его, как если бы это был статический метод - к какой панели вы бы хотели добавить кнопку редактирования?Вам нужно назвать его на 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);
    }
}

Или, возможно, all инициализации в конструкторе, а также сделать переменные 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);
    }
}
2 голосов
/ 20 ноября 2011

Используйте его следующим образом.

mainPanel.add(editButton);

Вы должны вызывать его через его объект, а не связывать его с именем класса, так как это не статический метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...