private void setupScrollBar() { if (is64Bit) { // 64-bit mode scrollBar = new HighPrecisionJScrollBar( Scrollbar.VERTICAL, new BigInteger( 1, new byte[] { (byte) 0x80, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 }), new BigInteger( 1, new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 }), new BigInteger( 1, new byte[] { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC })); scrollBar.setUnitIncrementHP( new BigInteger( 1, new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x08 })); scrollBar.setBlockIncrementHP( new BigInteger( 1, new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x40 })); } else { // 32-bit mode scrollBar = new HighPrecisionJScrollBar( Scrollbar.VERTICAL, new BigInteger(1, new byte[] {(byte) 0x80, (byte) 0x00, (byte) 0x00, (byte) 0x00}), new BigInteger(1, new byte[] {(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}), new BigInteger(1, new byte[] {(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC})); scrollBar.setUnitIncrementHP( new BigInteger(1, new byte[] {(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x04})); scrollBar.setBlockIncrementHP( new BigInteger(1, new byte[] {(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x20})); } scrollBar.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { updateFromScrollBar(); } }); }
private void recomputeNumVisibleRows() { Rectangle rect = new Rectangle(); getBounds(rect); int h = table.getRowHeight(); numVisibleRows = (rect.height + (h - 1)) / h; numUsableRows = numVisibleRows - 2; scrollBar.setBlockIncrementHP(new BigInteger(Integer.toString(addressSize * (numUsableRows)))); model.fireTableDataChanged(); // FIXME: refresh selection }