public int viewToImageX(int x) { switch (panel.getFitMode()) { case FIT_BOTH: case FIT_HORIZONTAL: return x * stmt.getWidth() / panel.getWidth(); case FIT_VERTICAL: return x * stmt.getHeight() / panel.getHeight(); default: return x; } }
public int imageToViewY(int y) { switch (panel.getFitMode()) { case FIT_BOTH: case FIT_VERTICAL: return y * panel.getHeight() / stmt.getHeight(); case FIT_HORIZONTAL: return y * panel.getWidth() / stmt.getWidth(); default: return y; } }
public void updatePanelSize() { // Set panel size. if (stmt != null && stmt.getWidth() > 0 && stmt.getHeight() > 0) { int width, height; switch (panel.getFitMode()) { case FIT_VERTICAL: height = getViewport().getHeight(); width = stmt.getWidth() * height / stmt.getHeight(); break; case FIT_HORIZONTAL: width = getViewport().getWidth(); height = stmt.getHeight() * width / stmt.getWidth(); break; case FIT_BOTH: width = getViewport().getWidth(); height = getViewport().getHeight(); break; case ORIGINAL: default: width = stmt.getWidth(); height = stmt.getHeight(); break; } panel.setPreferredSize(new Dimension(width, height)); panel.setSize(new Dimension(width, height)); } }