6793344: BasicStroke's first element dash pattern is not a dash

Reviewed-by: igor, flar
This commit is contained in:
Red Hat 2009-01-28 09:38:55 -08:00 committed by Jennifer Godinez
parent 2726f2a362
commit 55076b2558
2 changed files with 87 additions and 1 deletions

View File

@ -120,7 +120,7 @@ public class Dasher extends LineSink {
// Normalize so 0 <= phase < dash[0]
int idx = 0;
dashOn = false;
dashOn = true;
int d;
while (phase >= (d = dash[idx])) {
phase -= d;

View File

@ -0,0 +1,86 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/* @test
* @summary verify that first element is a dash
* @bug 6793344
*/
import java.awt.*;
import java.awt.image.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
public class DashStrokeTest extends Component {
static BufferedImage bi;
static boolean printed = false;
public Dimension getPreferredSize() {
return new Dimension(200,200);
}
public static void drawGui() {
bi = new BufferedImage(200, 20, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = bi.createGraphics();
BasicStroke dashStroke = new BasicStroke(1.0f, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 1.0f, new float[] { 0.0f, 200 },
1.0f);
g2d.setStroke(dashStroke);
g2d.setColor(Color.RED);
g2d.drawLine(5,10, 100,10);
printed =true;
}
public static void main(String[] args) {
try {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
drawGui();
}
});
} catch (Exception e) {
}
if (printed) {
checkBI(bi, Color.RED);
}
}
static void checkBI(BufferedImage bi, Color badColor) {
int badrgb = badColor.getRGB();
int col = bi.getRGB(6, 9);
if (col == badrgb) {
throw new RuntimeException("A pixel was turned on. ");
}
}
}