public static void clickTableCell(final JTable table, final int row, final int col,
			int clickCount) {
		runSwing(() -> table.setRowSelectionInterval(row, row));
		waitForSwing();
		Rectangle rect = table.getCellRect(row, col, true);
		clickMouse(table, MouseEvent.BUTTON1, rect.x + 10, rect.y + 10, clickCount, 0);
		waitForSwing();
	}
Launches the runnable on a new thread so as to not block the calling
thread. This is very useful for performing actions on the Swing thread
that show modal dialogs, which would otherwise block the calling thread,
such as a testing thread.

@param runnable The runnable that will be executed in a new Thread that
           will place the runnable on the Swing thread.
Ghidra/Framework/Gui/src/main/java/generic/test/AbstractGuiTest.java