static JPanel join(JComponent left, JComponent main, JComponent right) {
		JPanel panel = new JPanel(new BorderLayout());
		if (left != null) {
			panel.add(left, BorderLayout.WEST);
		}
		panel.add(main, BorderLayout.CENTER);
		if (right != null) {
			panel.add(right, BorderLayout.EAST);
		}

		return panel;
	}
Execute a non-modal task that has progress and can be cancelled.
<p>
See {@link #executeProgressTask(Task, int)}.

@param taskTitle String title of task
@param canCancel boolean flag, if true task can be canceled by the user
@param hasProgress boolean flag, if true the task has a progress meter
@param delay int number of milliseconds to delay before showing the task's
progress
@param runnable {@link MonitoredRunnable} to run
Ghidra/Features/PDB/src/main/java/pdb/symbolserver/ui/LoadPdbDialog.java