private void build() {

		setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));

		textFieldPanel = new JPanel(new BorderLayout());

		keyEntryPanel = new KeyEntryPanel(20, ks -> listener.keyStrokeChanged(ks));
		keyEntryPanel.setDisabledHint(DISABLED_HINT);
		keyEntryPanel.setEnabled(false); // enabled on action selection
		mouseEntryField = new MouseEntryTextField(20, mb -> listener.mouseBindingChanged(mb));
		mouseEntryField.setDisabledHint(DISABLED_HINT);
		mouseEntryField.setEnabled(false); // enabled on action selection

		textFieldPanel.add(keyEntryPanel, BorderLayout.NORTH);

		String checkBoxText = "Enter Mouse Binding";
		useMouseBindingCheckBox = new GCheckBox(checkBoxText);
		useMouseBindingCheckBox
				.setToolTipText("When checked, the text field accepts mouse buttons");
		useMouseBindingCheckBox.setName(checkBoxText);
		useMouseBindingCheckBox.addItemListener(e -> updateTextField());

		add(textFieldPanel);
		add(Box.createHorizontalStrut(5));
		add(useMouseBindingCheckBox);
	}
A panel that displays inputs for key strokes and mouse bindings.
Ghidra/Framework/Docking/src/main/java/docking/ActionBindingPanel.java