-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.3.0
-
None
-
sparc
-
solaris
In the customer words:
} >I have run into another Java problem with the rowHeader in a JScrollPane
} >not staying in synch with the main component in the scroll pane when
} >scrolling vertically by dragging the mouse in the row header.
} >
} >If you do this by dragging the mouse in the main component they do stay in
} >synch.
} >
} >I found a bug report in the Sun database that describes this exact problem.
} >#4242632
} >This report was dup'd to #4227520 which was then closed as unreproducable.
At the end you'll find a test case that reproduces the problem.
08/20/01 Fernando Castano
---begin-------------------------------------------------------
/* (swing1.1beta3) */
//package jp.gr.java_conf.tame.swing.examples;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
/**
* @version 1.0 11/09/98
*/
class RowHeaderRenderer extends JLabel implements ListCellRenderer {
RowHeaderRenderer(JTable table) {
JTableHeader header = table.getTableHeader();
setOpaque(true);
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(CENTER);
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
public Component getListCellRendererComponent( JList list,
Object value, int index, boolean isSelected, boolean cellHasFocus) {
setText((value == null) ? "" : value.toString());
return this;
}
}
public class RowHeaderExample extends JFrame {
public RowHeaderExample() {
super( "Row Header Example" );
setSize( 300, 150 );
ListModel lm = new AbstractListModel() {
String headers[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i"};
public int getSize() { return headers.length; }
public Object getElementAt(int index) {
return headers[index];
}
};
DefaultTableModel dm = new DefaultTableModel(lm.getSize(),10);
JTable table = new JTable( dm );
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JList rowHeader = new JList(lm);
rowHeader.setFixedCellWidth(50);
rowHeader.setFixedCellHeight(table.getRowHeight()
+ table.getRowMargin());
// + table.getIntercellSpacing().height);
rowHeader.setCellRenderer(new RowHeaderRenderer(table));
JScrollPane scroll = new JScrollPane( table );
scroll.setRowHeaderView(rowHeader);
getContentPane().add(scroll, BorderLayout.CENTER);
}
public static void main(String[] args) {
RowHeaderExample frame = new RowHeaderExample();
frame.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
System.exit(0);
}
});
frame.setVisible(true);
}
}
---end-------------------------------------------------------
- duplicates
-
JDK-4202002 JScrollPane: row header autoscrolling not reflected in content
-
- Open
-