private JPanel create() {
		labelNameChoices = new GhidraComboBox<>() {
			@Override
			public Dimension getPreferredSize() {
				Dimension size = super.getPreferredSize();
				// change the preferred size to use the width determined by the # of columns in
				// combo box editor instead of the largest item in the combo box data model to
				// prevent the dialog from growing huge when a large label gets added to its recent
				// items
				Dimension editorSize = getEditor().getEditorComponent().getPreferredSize();
				size.width = editorSize.width;
				return size;
			}
		};
		// the  number of columns determines the default width of the add/edit label dialog
		labelNameChoices.setColumns(20);
		labelNameChoices.setName("label.name.choices");
		GhidraComboBox<NamespaceWrapper> comboBox = new GhidraComboBox<>();
		comboBox.setEnterKeyForwarding(true);
		namespaceChoices = comboBox;

		primaryCheckBox = new GCheckBox("Primary");
		primaryCheckBox.setMnemonic('P');
		primaryCheckBox.setToolTipText(
			"Make this label be the one that shows up in references to this location.");
		entryPointCheckBox = new GCheckBox("Entry Point  ");
		entryPointCheckBox.setMnemonic('E');
		entryPointCheckBox.setToolTipText("Mark this location as an external entry point.");
		pinnedCheckBox = new GCheckBox("Pinned");
		pinnedCheckBox.setMnemonic('A');
		pinnedCheckBox.setToolTipText(
			"Do not allow this label to move when the image base changes or a memory block is moved.");

		labelNameChoices.setEditable(true);

		JPanel mainPanel = new JPanel(new VerticalLayout(4));
		JPanel topPanel = new JPanel(new BorderLayout());
		JPanel midPanel = new JPanel(new BorderLayout());
		JPanel bottomPanel = new JPanel();

		nameBorder =
			BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), "Enter Label");
		topPanel.setBorder(nameBorder);
		Border border =
			BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), "Namespace");
		midPanel.setBorder(border);
		border = BorderFactory.createEmptyBorder(5, 0, 0, 5);
		bottomPanel.setBorder(border);

		mainPanel.add(topPanel);
		mainPanel.add(midPanel);
		mainPanel.add(bottomPanel);

		topPanel.add(labelNameChoices, BorderLayout.NORTH);
		midPanel.add(namespaceChoices, BorderLayout.NORTH);
		bottomPanel.add(entryPointCheckBox);
		bottomPanel.add(primaryCheckBox);
		bottomPanel.add(pinnedCheckBox);
		bottomPanel.setBorder(BorderFactory.createTitledBorder("Properties"));
		addListeners();

		mainPanel.setBorder(new EmptyBorder(5, 5, 5, 5));

		return mainPanel;
	}
Define the Main panel for the dialog here.
Ghidra/Features/Base/src/main/java/ghidra/app/util/AddEditDialog.java