khaleesijamie Ответов: 0

Элементы, не отображающиеся в графическом интерфейсе java


Я работаю над программой для заказов пиццы с графическим интерфейсом. Моя проблема заключается в том, что когда я запускаю графический интерфейс, некоторые элементы не отображаются. Я почти уверен, что проблема в этом. -Пограничная зона.Биты направления. Появится только один элемент с каждым направлением (Север,Юг и т. д.). Что мне интересно, так это как я могу это исправить, чтобы все было видно.

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;


public class PizzaOrder {

	 private JComboBox createToppingsMenu() {
 		JComboBox comboBox = new JComboBox();
 		comboBox.addItem("Pepperoni");
 		comboBox.addItem("Sausage");
 		comboBox.addItem("Pinapple");
 		return comboBox;
 	}

	 private JComboBox createGetMenu() {
		JComboBox combo1Box = new JComboBox();
		combo1Box.addItem("Delivery");
		combo1Box.addItem("Pick Up");
		return combo1Box;
	}

	private JPanel createNamePanel() {
		JPanel namePanel = new JPanel();
		namePanel.add (new JLabel("Name:  "));
		namePanel.add (new JTextField(15));
		return namePanel;
	}

	private JPanel createAddressPanel() {
		JPanel addressPanel = new JPanel();
		addressPanel.add (new JLabel("Address:  "));
		addressPanel.add (new JTextField(15));
		return addressPanel;
	}

	private JPanel createPhonePanel() {
		JPanel phonePanel = new JPanel();
		phonePanel.add (new JLabel("Phone Number:  "));
		phonePanel.add (new JTextField(15));
		return phonePanel;
	}



	private JPanel createButtonPanel() {
		JPanel buttonPanel = new JPanel();
		buttonPanel.add (new JButton("Place order"));
		buttonPanel.add (new JButton("Cancel order"));
		return buttonPanel;
	}

	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setTitle("Pizza Order");

		PizzaOrder order = new PizzaOrder();
		Container contentPane = f.getContentPane();

		JPanel namePanel = order.createNamePanel();
		contentPane.add(namePanel, BorderLayout.SOUTH);

		JPanel addressPanel = order.createAddressPanel();
		contentPane.add(addressPanel, BorderLayout.SOUTH);

		JPanel phonePanel = order.createPhonePanel();
		contentPane.add(phonePanel, BorderLayout.SOUTH);

		JComboBox comboBox = order.createToppingsMenu();
		contentPane.add(comboBox, BorderLayout.CENTER);

		JComboBox combo1Box = order.createGetMenu();
		contentPane.add(combo1Box, BorderLayout.CENTER);

		JPanel buttonPanel = order.createButtonPanel();
		contentPane.add(buttonPanel, BorderLayout.EAST);

		f.setSize(500, 500);

		f.setVisible(true);

	}

}


Что я уже пробовал:

я искал его, но так ничего и не смог выяснить.

Richard MacCutchan

Я подозреваю, что каждая панель, которую вы добавляете, накладывается на любую предыдущую с тем же местоположением (восток, юг и т. д.). Попробуйте создать одну панель в каждом нужном месте и просто добавьте отдельные элементы управления в каждую соответствующую панель. Менеджер панели должен настроить их расположение внутри панели.

khaleesijamie

Как бы я это сделал? Извините, что я действительно Новичок в java GUI.

Richard MacCutchan

Затем вам нужно поработать с учебниками, чтобы получить полное представление о том, как использовать эти компоненты. Вот ссылка на использование менеджера макетов, но я рекомендую также посмотреть все остальные разделы: Урок: размещение компонентов в контейнере (учебники Java™ > создание графического интерфейса с помощью JFC/Swing)[^].

0 Ответов