Jlabel, Jtextfield, Jbutton не сразу появляются в GUI Я с ума - PullRequest
1 голос
/ 03 февраля 2020

У меня проблема с элементами, отображаемыми на моем GUI. Я создаю очень простую программу, в которой я прошу пользователя ввести три разных целых числа в трех разных полях и кнопку, чтобы сложить числа при нажатии. Сейчас я создал кнопку, текстовое поле и метку, но есть проблема: кнопка, текстовое поле и метка не отображаются на GUI. Я должен навести курсор на область кнопки, чтобы она появилась, и то же самое с текстовым полем. Метка вообще не появляется, даже когда я нахожусь там, где она должна быть. Есть причина, почему это происходит? Вот мой код

import javax.swing.*;

public class ButtonPractice extends javax.swing.JFrame
{

    public static void main(String[] args)
    {

        JFrame box = new JFrame("Simple addition");
        box.setVisible(true);
        box.setSize(500,500);
        box.setResizable(false);
        box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        panel.setLayout(null);
        box.add(panel);

        JTextField inputNumOne = new JTextField("Integer here");
        inputNumOne.setBounds(225,50,200,30);
        panel.add(inputNumOne);

        JLabel labelNumOne = new JLabel("First integer");
        labelNumOne.setBounds(100,50,150,50);
        panel.add(labelNumOne);


        JButton combiner = new JButton("Concactentate");
        //positioning of the button on the panel
        combiner.setBounds(175,300,125,50);

        panel.add(combiner);

    }

}

Заранее спасибо тем, кто просматривает код!

1 Ответ

0 голосов
/ 03 февраля 2020

Позвоните box.getContentPane().add(panel);

после того, как вы создали свою панель. Затем позвоните

box.setVisible(true) после этого.

Вы также не должны устанавливать свой менеджер макета на ноль. Оставив значение по умолчанию FlowLayout можно начинать с.

enter image description here

...