private JPanel buildMainPanel() {
		JPanel memPanel = new JPanel(new BorderLayout());
		tableModel = new MemoryMapModel(this, null);
		table = new MemoryMapTable(tableModel);
		filterPanel = new GhidraTableFilterPanel<>(table, tableModel);

		table.installNavigation(tool);
		table.setAutoCreateColumnsFromModel(false);

		String namePrefix = "Memory Map";
		table.setAccessibleNamePrefix(namePrefix);
		filterPanel.setAccessibleNamePrefix(namePrefix);

		GTableCellRenderer monoRenderer = new GTableCellRenderer() {
			@Override
			protected Font getDefaultFont() {
				return fixedWidthFont;
			}
		};

		TableColumn column = table.getColumn(MemoryMapModel.START_COL);
		column.setCellRenderer(monoRenderer);
		column = table.getColumn(MemoryMapModel.END_COL);
		column.setCellRenderer(monoRenderer);
		column = table.getColumn(MemoryMapModel.LENGTH_COL);
		column.setCellRenderer(monoRenderer);

		GBooleanCellRenderer booleanRenderer = new GBooleanCellRenderer();
		column = table.getColumn(MemoryMapModel.READ_COL);
		column.setCellRenderer(booleanRenderer);
		column = table.getColumn(MemoryMapModel.WRITE_COL);
		column.setCellRenderer(booleanRenderer);
		column = table.getColumn(MemoryMapModel.EXECUTE_COL);
		column.setCellRenderer(booleanRenderer);
		column = table.getColumn(MemoryMapModel.VOLATILE_COL);
		column.setCellRenderer(booleanRenderer);
		column = table.getColumn(MemoryMapModel.INIT_COL);
		column.setCellRenderer(booleanRenderer);

		table.setDefaultEditor(String.class,
			new GTableTextCellEditor(new MaxLengthField(MAX_SIZE)));

		table.setPreferredScrollableViewportSize(new Dimension(700, 105));

		table.addMouseListener(new MouseHandler());

		table.addKeyListener(new KeyHandler());

		table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		ListSelectionModel lsm = table.getSelectionModel();

		lsm.addListSelectionListener(e -> {
			if (e.getValueIsAdjusting()) {
				return;
			}

			ListSelectionModel model = (ListSelectionModel) e.getSource();
			enableOptions(model);
			contextChanged();
		});

		memPanel.add(new JScrollPane(table), BorderLayout.CENTER);
		memPanel.add(filterPanel, BorderLayout.SOUTH);

		return memPanel;
	}
Provider for the memory map Component.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/MemoryMapProvider.java