Methods Summary |
---|
public static javax.swing.JScrollPane | createPagingScrollPaneForTable(javax.swing.JTable jt)
JScrollPane jsp = new JScrollPane(jt);
// Don't choke if this is called on a regular table . . .
if (! (jt.getModel() instanceof PagingModel)) {
return jsp;
}
// Okay, go ahead and build the real scroll pane
final PagingModel model = (PagingModel)jt.getModel();
final JButton upButton = new JButton(new ArrowIcon(ArrowIcon.UP));
upButton.setEnabled(false); // starts off at 0, so can't go up
final JButton downButton = new JButton(new ArrowIcon(ArrowIcon.DOWN));
upButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
model.pageUp();
// If we hit the top of the data, disable the up button
if (model.getPageOffset() == 0) {
upButton.setEnabled(false);
}
downButton.setEnabled(true);
}
} );
downButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
model.pageDown();
// If we hit the bottom of the data, disable the down button
if (model.getPageOffset() == (model.getPageCount() - 1)) {
downButton.setEnabled(false);
}
upButton.setEnabled(true);
}
} );
// Turn on the scrollbars; otherwise we won't get our corners
jsp.setVerticalScrollBarPolicy
(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy
(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
// add in the corners (page up/down)
jsp.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, upButton);
jsp.setCorner(ScrollPaneConstants.LOWER_RIGHT_CORNER, downButton);
return jsp;
|
public int | getColumnCount() return Record.getColumnCount();
|
public java.lang.String | getColumnName(int col)
return Record.getColumnName(col);
|
public int | getPageCount()
return (int)Math.ceil((double)data.length / pageSize);
|
public int | getPageOffset() return pageOffset;
|
public int | getPageSize() return pageSize;
|
public int | getRealRowCount()
return data.length;
|
public int | getRowCount() return pageSize;
|
public java.lang.Object | getValueAt(int row, int col)
int realRow = row + (pageOffset * pageSize);
return data[realRow].getValueAt(col);
|
public void | pageDown()
if (pageOffset < getPageCount() - 1) {
pageOffset++;
fireTableDataChanged();
}
|
public void | pageUp()
if (pageOffset > 0) {
pageOffset--;
fireTableDataChanged();
}
|
public void | setPageSize(int s)
if (s == pageSize) { return; }
int oldPageSize = pageSize;
pageSize = s;
if (pageSize < oldPageSize) {
fireTableRowsDeleted(pageSize, oldPageSize - 1);
}
else {
fireTableRowsInserted(oldPageSize, pageSize - 1);
}
|