@@ -580,34 +580,40 @@ public void valueChanged( ListSelectionEvent e ) {
580580 * with fixed columns. This scroll pane may have a null viewport if a model contains no visible
581581 * fixed columns.
582582 * <p>To obtain a left fixed table, call {@link #getSlaveTable}.</p>
583- * @return a scroll pane with a fixed left part (if required)
583+ * @return a scroll pane with a fixed left part (if required), or null if this table is just a fixed part
584584 */
585585 public JScrollPane getScrollPane () {
586- if ( scrollPane != null )
586+ if ( scrollPane != null || getMasterTable () != null )
587587 return scrollPane ;
588588 scrollPane = new JScrollPane ( this );
589- if ( getMasterTable () == null ) {
590- updateScrollPane ();
591- addPropertyChangeListener ( new PropertyChangeListener () {
592- @ Override
593- public void propertyChange ( PropertyChangeEvent e ) {
594- JViewport viewport = scrollPane .getRowHeader ();
595- if ( viewport == null )
596- return ;
597- Component comp = viewport .getView ();
598- if ( !( comp instanceof JBroTable ) )
599- return ;
600- JBroTable fixed = ( JBroTable )comp ;
601- String property = e .getPropertyName ();
602- if ( "selectionModel" .equals ( property ) )
603- fixed .setSelectionModel ( getSelectionModel () );
604- else if ( "rowSorter" .equals ( property ) )
605- fixed .setRowSorter ( getRowSorter () );
606- else if ( "model" .equals ( property ) )
607- fixed .setModel ( getModel () );
608- }
609- } );
610- }
589+ updateScrollPane ();
590+ addPropertyChangeListener ( new PropertyChangeListener () {
591+ @ Override
592+ public void propertyChange ( PropertyChangeEvent e ) {
593+ JViewport viewport = scrollPane .getRowHeader ();
594+ if ( viewport == null )
595+ return ;
596+ Component comp = viewport .getView ();
597+ if ( !( comp instanceof JBroTable ) )
598+ return ;
599+ JBroTable fixed = ( JBroTable )comp ;
600+ String property = e .getPropertyName ();
601+ if ( "selectionModel" .equals ( property ) )
602+ fixed .setSelectionModel ( getSelectionModel () );
603+ else if ( "rowSorter" .equals ( property ) )
604+ fixed .setRowSorter ( getRowSorter () );
605+ else if ( "model" .equals ( property ) )
606+ fixed .setModel ( getModel () );
607+ else if ( "showVerticalLines" .equals ( property ) )
608+ fixed .setShowVerticalLines ( getShowVerticalLines () );
609+ else if ( "rowMargin" .equals ( property ) )
610+ fixed .setRowMargin ( getRowMargin () );
611+ else if ( "rowHeight" .equals ( property ) )
612+ fixed .setRowHeight ( getRowHeight () );
613+ else if ( "fillsViewportHeight" .equals ( property ) )
614+ fixed .setFillsViewportHeight ( getFillsViewportHeight () );
615+ }
616+ } );
611617 return scrollPane ;
612618 }
613619
@@ -640,6 +646,8 @@ public JBroTable getMasterTable() {
640646 * @return fixed part for a main table, otherwise null
641647 */
642648 public JBroTable getSlaveTable () {
649+ if ( getScrollPane () == null )
650+ return null ;
643651 JViewport viewport = getScrollPane ().getRowHeader ();
644652 if ( viewport == null )
645653 return null ;
@@ -653,6 +661,14 @@ public JBroTable getSlaveTable() {
653661 public boolean hasFocus () {
654662 return masterTable == null ? super .hasFocus () : masterTable .hasFocus ();
655663 }
664+
665+ @ Override
666+ public void setRowHeight ( int row , int rowHeight ) {
667+ super .setRowHeight ( row , rowHeight );
668+ JBroTable fixed = getSlaveTable ();
669+ if ( fixed != null )
670+ fixed .setRowHeight ( row , rowHeight );
671+ }
656672
657673 private void updateScrollPane () {
658674 if ( scrollPane == null || getMasterTable () != null )
@@ -683,6 +699,10 @@ private void updateScrollPane() {
683699 fixed .setAutoResizeMode ( getAutoResizeMode () );
684700 fixed .setFocusable ( false );
685701 fixed .setUpdateSelectionOnSort ( false );
702+ fixed .setFillsViewportHeight ( getFillsViewportHeight () );
703+ fixed .setRowHeight ( getRowHeight () );
704+ fixed .setRowMargin ( getRowMargin () );
705+ fixed .setShowVerticalLines ( getShowVerticalLines () );
686706 fixed .setPreferredScrollableViewportSize ( fixed .getPreferredSize () );
687707
688708 MouseAdapter ma = new MouseAdapter () {
0 commit comments