#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. Кроме того, пожалуйста, предоставьте достаточно кода для его компиляции. Половина ваших панелей вообще не определена.