Methods Summary |
---|
public static javax.swing.JScrollPane | createPagingScrollPaneForTable(javax.swing.JTable jt)
JScrollPane jsp = new JScrollPane(jt);
TableModel tmodel = jt.getModel();
// Don't choke if this is called on a regular table . . .
if (! (tmodel instanceof PagingModel)) {
return jsp;
}
// Okay, go ahead and build the real scrollpane
final PagingModel model = (PagingModel)tmodel;
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));
if (model.getPageCount() <= 1) {
downButton.setEnabled(false); // One page...can't scroll 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 Math.min(pageSize, data.length);
|
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;
pageOffset = (oldPageSize * pageOffset) / pageSize;
fireTableDataChanged();
/*
if (pageSize < oldPageSize) {
fireTableRowsDeleted(pageSize, oldPageSize - 1);
}
else {
fireTableRowsInserted(oldPageSize, pageSize - 1);
}
*/
|