private void init() {
		setPreferredSize(new Dimension(500, 200));
		leftPanel = new JPanel(new BorderLayout());
		rightPanel = new JPanel(new BorderLayout());

		leftPanelLabel = new GDHtmlLabel();
		rightPanelLabel = new GDHtmlLabel();
		leftPanelLabel.setBorder(BorderFactory.createEmptyBorder(2, 8, 2, 0));
		rightPanelLabel.setBorder(BorderFactory.createEmptyBorder(2, 8, 2, 0));

		setLabelText(leftPanelLabel, HTMLUtilities.escapeHTML(clientName) + ":");
		setLabelText(rightPanelLabel, HTMLUtilities.escapeHTML(sourceName) + ":");

		add(leftPanel);
		add(rightPanel);
		dtLabel1 = new GDHtmlLabel();
		dtLabel1.setOpaque(true);
		dtLabel1.setBackground(Colors.BACKGROUND);
		dtLabel1.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 0));
		dtLabel1.setVerticalAlignment(SwingConstants.TOP);
		dtLabel2 = new GDHtmlLabel();
		dtLabel2.setOpaque(true);
		dtLabel2.setBackground(Colors.BACKGROUND);
		dtLabel2.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 0));
		dtLabel2.setVerticalAlignment(SwingConstants.TOP);

		JScrollPane leftScrollPane = new JScrollPane(dtLabel1);
		JScrollPane rightScrollPane = new JScrollPane(dtLabel2);
		leftScrollPane.getVerticalScrollBar().setUnitIncrement(9);
		rightScrollPane.getVerticalScrollBar().setUnitIncrement(9);
		leftPanel.add(leftScrollPane);
		rightPanel.add(rightScrollPane);
		leftPanel.add(leftPanelLabel, BorderLayout.NORTH);
		rightPanel.add(rightPanelLabel, BorderLayout.NORTH);
		syncScrollers(leftScrollPane, rightScrollPane);

	}
Panel that displays two data types side by side.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeComparePanel.java