private void addIconPanelListeners() {

		iconField.addActionListener(e -> {
			String filename = iconField.getText();
			if (filename.length() == 0) {
				setStatusText("Please enter a filename for the icon.");
				return;
			}
			setPicture(new ToolIconURL(filename));
		});

		iconField.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				clearStatusText();
			}
		});
		DocumentListener dl = new DocumentListener() {
			/* (non Javadoc)
			 * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)
			 */
			@Override
			public void changedUpdate(DocumentEvent e) {
				lookupIconName();
			}

			/* (non Javadoc)
			 * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)
			 */
			@Override
			public void removeUpdate(DocumentEvent e) {
				lookupIconName();
			}

			/* (non Javadoc)
			 * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)
			 */
			@Override
			public void insertUpdate(DocumentEvent e) {
				lookupIconName();
			}
		};
		iconField.getDocument().addDocumentListener(dl);

		browseButton.addActionListener(e -> browseForIcons());

	}
Add listeners for components in the icon panel.
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/dialog/SaveToolConfigDialog.java