Добавление JButton к JPanel в JFrame - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь научиться использовать JFrames. У меня есть JFrame, у которого есть JPanel, у которого есть JButton. Я добавляю JButton в JPanel, который добавляется в JFrame. Мой код ниже, я не могу понять, почему это не сработает. Это не должно иметь значения, если у меня нет верного набора макетов? Я просто пытаюсь понять это, чтобы помочь мне решить большую проблему, используя макеты, любая помощь приветствуется. Спасибо

public class one {
    public static void main(String[] args) {

        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().setLayout(null);
        f.setBounds(10, 10, 500, 500);

        JPanel p = new JPanel();
        p.setVisible(true);
        p.setBackground(Color.BLACK);

        JButton b = new JButton("Testing");
        b.setBounds(60, 60, 100, 100);
        b.setVisible(true);



        p.add(b);

        f.add(p);

        f.setVisible(true);
    }
}

Вместо запуска этого кода открывается только пустой JFrame.

1 Ответ

0 голосов
/ 09 января 2019

Если JPanel содержит все Component s, вы должны установить JPanel как ContentPane для JFrame.

Так что вам нужно изменить это

f.add(p);

до

f.setContentPane(p);

Если JPanel только для определенных Component s, вы должны установить границы для JPanel и добавить его.

Пример для BorderLayout:

f.add(p, BorderLayout.CENTER);
...