void (Graphics2D g, int x, int y, int w, int h, int fillStart, int amountFull) { String progressString = progressBar.getString(); g.setFont(progressBar.getFont()); Point renderLocation = getStringPlacement(g, progressString, x, y, w, h); Rectangle oldClip = g.getClipBounds(); if (progressBar.getOrientation() == SwingConstants.HORIZONTAL) { g.setColor(getSelectionBackground()); UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y); g.setColor(getSelectionForeground()); g.clipRect(fillStart, y, amountFull, h); UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y); } else { // VERTICAL g.setColor(getSelectionBackground()); AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2); g.setFont(progressBar.getFont().deriveFont(rotate)); renderLocation = getStringPlacement(g, progressString, x, y, w, h); UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y); g.setColor(getSelectionForeground()); g.clipRect(x, fillStart, w, amountFull); UIUtilities.drawString(progressBar, g, progressString, renderLocation.x, renderLocation.y); } g.setClip(oldClip); }