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)); } }