Blog: Tech Talk

agsdix-fas fa-home

Blog: Home

agsdix-fas fa-pen-fancy

Blog: CEO's Corner

agsdix-fas fa-code

Blog: Tech Talk

Blog: Product Releases

agsdix-fas fa-chalkboard-teacher

Blog: Viewing

Blog: Conversion

arrow left circle icon Blog: Tech Talk

Scrolling Images with Your Keyboard

by | Apr 24, 2012


In image viewing applications, users often want to be able to scroll an image without their hands leaving the keyboard. Here’s how to extend the RasterMaster imaging SDK scrolling functionality to allow you to scroll from the keyboard:

Your container, which does your image painting, will need to implement the Java KeyListener interface and add the KeyListener in your constructor:

public class SnowFrame extends Frame implements KeyListener

public SnowFrame()

{

addKeyListener(this);

}

You’ll also need to get handles on the scrollbars from RasterMaster since they are internally maintained. Add these class level members:

private Adjustable hsb = null;

private Adjustable vsb = null;

Finally, you’ll need to implement the three methods required by KeyListener. Although, we’ll only use one of them for this task:

public void keyTyped(KeyEvent ke){}

public void keyReleased(KeyEvent ke){}

public void keyPressed(KeyEvent ke){

if(hsb == null || vsb == null){

if(Simage.vsb != null){

vsb = Simage.vsb.getScrollbar();}

else if(Simage.hsb != null){

hsb = Simage.hsb.getScrollbar();}}

if((ke.getKeyCode() == ke.VK_UP) && vsb!=null){

vsb.setValue(vsb.getValue() – Simage.getHeight() / 20);

AdjustmentEvent e = new

AdjustmentEvent(vsb,

AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, AdjustmentEvent.UNIT_INCREMENT, 10);

((AdjustmentListener)(Simage.vsb)).adjustmentValueChanged(e);}

else if((ke.getKeyCode() == ke.VK_DOWN) && vsb!=null){

vsb.setValue(vsb.getValue() + Simage.getHeight() / 20);

vsb.setValue(vsb.getValue() + 10);

AdjustmentEvent e = new AdjustmentEvent(vsb,

AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED,

AdjustmentEvent.UNIT_DECREMENT, 10);

((AdjustmentListener)(Simage.vsb)).adjustmentValueChanged(e);}

}//end method

The keyPressed method checks that the scrollbars are not null and fires the necessary adjustment events to perform scrolling. You should also update your zooming code to reset vsb and hsb to null when zoom = 0. You could also extend this functionality to horizontal scrolling as well, by handle the VK_RIGHT and VK_LEFT KeyCodes.

Learn More

In addition to our Tech Tips section, our document and image Solutions Section provides business application and industry-specific examples.