Я не могу добавить JLabel или JButton в свой jFrame? Мой JFrame этого не показывает - PullRequest
0 голосов
/ 30 мая 2020

Я новичок в java. Я пытаюсь добавить jLabel в свой Jframe, но он не отображается. Я также пробовал добавить JButton, но, похоже, это не работает. Я перепробовал очень много вещей за последние несколько дней. Что-то не так с моим кодом? Спасибо.


public class F2 extends JPanel implements ActionListener {

    JFrame frame = new JFrame();
    JLabel label = new JLabel();
    int j = 2;
    ArrayList<Person> people = new ArrayList<>();

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        F2 f = new F2();

    }

    public F2() {
        j++;
        frame = new JFrame();
        frame.setSize(1380, 728);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Timer t = new Timer(20, this);
        t.restart();
        label.setText("Test");

        add(label);
frame.pack();
        frame.add(this);
        frame.setVisible(true);

        for (int i = 0; i < 100; i++) {
            people.add(new Person(0));
        }
    }

    public void paint(Graphics g) {
        super.paintComponent(g);
        Places p1 = new Places(g);
        for (Person p : people) {
            p.paint(g); //recall that each Person object has a paint method. We're passing g as the argument
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        repaint();
    }

}

1 Ответ

0 голосов
/ 30 мая 2020

Копирование ответа Алекса Руденко:

Вы должны были добавить метку на свою панель, а затем добавить свою панель во фрейм. Теперь ваша пустая панель заменяет метку.

this.add(label)
frame.add(this)

Может быть, сделать ее также видимой и поиграть с координатами и размером ... или просто скопировать готовый код из inte rnet ... пути вы используете jpanel в основном классе, возможно, вас смущает.

...