Почему окно пустое, когда я запускаю свою Java-программу?

#java #swing

#java #swing

Вопрос:

Я пытаюсь создать графический интерфейс на Java. Я добавляю кнопки, метки, текстовые поля и поля со списком. Когда я запускаю свою программу, всплывающее окно полностью пустое. Есть идеи, почему это происходит?

 public Project3() {
    JPanel leftPanel = new JPanel();
    leftPanel.setLayout(new GridLayout(7, 2));
    leftPanel.setBounds(20, 10, 5, 5);
    leftPanel.add(shapeLbl);
    leftPanel.add(shapeBox);
    leftPanel.add(fillLbl);
    leftPanel.add(fillBox);
    leftPanel.add(colorLbl);
    leftPanel.add(colorBox);
    leftPanel.add(widthLbl);
    leftPanel.add(widthTxt);
    leftPanel.add(heightLbl);
    leftPanel.add(heightTxt);
    leftPanel.add(xLbl);
    leftPanel.add(xTxt);
    leftPanel.add(yLbl);
    leftPanel.add(yTxt);
    add(leftPanel);
       
    JPanel rightPanel = new JPanel();
    rightPanel.setBounds(270, 10, 5, 5);
    rightPanel.setBorder(BorderFactory.createTitledBorder("Shape Drawing"));
    add(rightPanel);
       
    JPanel botPanel = new JPanel();
    botPanel.setBounds(240, 250, 5, 5);
    botPanel.add(drawBtn);
    add(botPanel);
       
    drawBtn.setToolTipText("Using the information above, this button "  
            "draws a shape in the area titled "Shape Drawing."");
    drawBtn.setMnemonic('d');
}

public static void main(String[] args) {
   Project3 p3 = new Project3();
   p3.setTitle("Geometric Drawing");
   p3.setLayout(null);
   p3.setSize(500, 301);
   p3.setLocationRelativeTo(null);
   p3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   p3.setVisible(true);
} 
  

}

Комментарии:

1. Что add делать? Куда вы добавляете эти панели?

2. Из какого класса расширяется Project3?

3. Скорее всего, проблема с макетом. Помните, что a JFrame BorderLayout по умолчанию присваивает себе значение a . Таким образом, установка границ не имеет никакого эффекта. Используйте setPreferredSize вместо и указывайте BorderLayout ограничения при добавлении панелей.

4. Не используйте нулевой макет!!!

5. Кроме того, пожалуйста, предоставьте достаточно кода для его компиляции. Половина ваших панелей вообще не определена.