Почему мой второй JButton не отображается на JFrame в Java коде свинга? - PullRequest
0 голосов
/ 25 марта 2020

Вторая кнопка (b2) не видна на JFrame.

Все 3 компонента l1, l2 и b2 видны на JFrame, а JButton b2 - нет.

        public void Joptionpane(int a)
        {
        l1=new JLabel("Your score is :" + a);
        l2=new JLabel("Do you want to continue ?");
        b1= new JButton("Yes");
        b2= new JButton("NO");


        add(l1);
        add(l2);
        add(b1);
        add(b2);

       l1.setBounds(150,10,400,50);
       l2.setBounds(150,60,400,50);
       b1.setBounds(200,130,100,50);
       b2.setBounds(300,130,100,50);

Я установил макет на ноль

        setVisible(true);
        setLayout(null);
        setTitle("Flappy Bird");
        setSize(700,300);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Ответы [ 2 ]

2 голосов
/ 25 марта 2020

Из кода, кажется, приложение. нужно что-то вроде этого:

enter image description here

Это JOptionPane, который хорошо подходит для задачи, в отличие от JFrame, который нет.

Код для этого:

String text = "<html><p>Your score is: 42."
        + "<p>Do you want to continue?";
int result = JOptionPane.showConfirmDialog(
        null, text, "Flappy Bird", JOptionPane.YES_NO_OPTION);
if (result==JOptionPane.YES_OPTION) {
    System.out.println("Continue!");
    // TODO! Start another game
} else {
    System.out.println("Exit!");
    System.exit(0);
}
0 голосов
/ 25 марта 2020
    setVisible(true);
    setLayout(null);

Возможно, вы должны установить макет в null, прежде чем указывать рамке рисовать все ...

И как мы на нем: установите размер, прежде чем делать панель тоже видна.

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

    setLayout(null);
    setSize(700,300);
    setVisible(true);
...