package org.openslx.dozmod.gui.control.table; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JScrollPane; import javax.swing.JTable; /** * Extended JScrollPane * - make de-selection by clicking on empty space possible * - transfer focus to table when clicking on empty space * - make the scroll pane's background color match that of the JTable. */ @SuppressWarnings("serial") public class QScrollPane extends JScrollPane { public QScrollPane(final JTable view) { super(view); this.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { view.clearSelection(); view.requestFocus(); } }); PropertyChangeListener listener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (getViewport() == null) return; getViewport().setBackground(view.getBackground()); } }; view.addPropertyChangeListener("background", listener); listener.propertyChange(null); } }