public Dimension getPreferredSize() { if (backPanel != null) { return backPanel.getPreferredSize(); } else { return super.getPreferredSize(); } }
public void run() { if (logger.isEnabledFor(Level.DEBUG)) { logger.debug("About-Workerthread gestartet. " + this); } Image new_img; Image toDraw; ImageFilter filter = new ImageFilter(); int creditsHoehe = 60; int creditsBreite = 135; int imageX = backgroundImage.getWidth(backPanel) / 2 + 20; int imageY = backgroundImage.getHeight(backPanel) / 2 - 15; filter = new CropImageFilter(imageX, imageY, creditsBreite, creditsHoehe); new_img = createImage(new FilteredImageSource(backgroundImage.getSource(), filter)); filter = new CropImageFilter(0, 0, creditsBreite, creditsHoehe); int y = creditsHoehe; try { sleep(1000); Graphics g = backPanel.getGraphics(); g.setColor(Color.BLACK); Graphics toDrawGraphics; FontMetrics fm; int strWidth; Font fontBold = new Font("Arial", Font.BOLD, 12); Font fontPlain = new Font("Arial", Font.PLAIN, 12); boolean draw = false; while (!isInterrupted()) { if (run) { toDraw = createImage(creditsBreite, creditsHoehe); toDrawGraphics = toDraw.getGraphics(); toDrawGraphics.drawImage(new_img, 0, 0, backPanel); y--; int abstand = -15; for (CreditsEntry curEntry : credits) { if (curEntry.isUeberschrift()) { abstand += 20; toDrawGraphics.setFont(fontBold); toDrawGraphics.setColor(Color.BLUE); } else { abstand += 15; toDrawGraphics.setFont(fontPlain); toDrawGraphics.setColor(Color.BLACK); } fm = toDrawGraphics.getFontMetrics(); strWidth = fm.stringWidth(curEntry.getAusgabetext()); toDrawGraphics.drawString( curEntry.getAusgabetext(), (creditsBreite - strWidth) / 2, y + abstand); } if (draw) { g.drawImage(toDraw, imageX - 1, imageY - 11, backPanel); } else { draw = true; } if (y == -5 - credits.size() * 15) { y = creditsHoehe; } } try { sleep(100); } catch (InterruptedException iE) { interrupt(); } } } catch (Exception e) { logger.error(ApplejuiceFassade.ERROR_MESSAGE, e); } if (logger.isEnabledFor(Level.DEBUG)) { logger.debug("About-Workerthread beendet. " + this); } }