2009-04-27 6 views
4

Können Sie eine Cross-Hashing-Textur in Java neu erstellen? Der unten stehende C# -Code zeigt, wie dies für das .NET-Framework erreicht wird. Das Java-Snippet ist nahe, aber ich konnte die Zeilen nicht richtig um 45 Grad drehen.Java Cross Hatching Texture

C#

HatchBrush crossHatch = 
     new HatchBrush(HatchStyle.Cross, somecolor, somecolor); 

Java

BufferedImage bufferedImage = 
     new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB); 

Graphics2D g2 = bufferedImage.createGraphics(); 

g2.setColor(Color.BLUE); 
g2.fillRect(0, 0, 5, 5); 
g2.setColor(pinColor); 
g2.fillOval(0, 0, 5, 5); 

// paint with the texturing brush 
Rectangle2D rect = new Rectangle2D.Double(0, 0, 5, 5); 
g2d.setPaint(new TexturePaint(bufferedImage, rect)); 
g2d.fill(shape); 

Vielen Dank im Voraus.

Antwort

9

Hier ist eine, die bei 5-Pixel-Intervalle Kreuzschraffur sollte:

BufferedImage bufferedImage = 
     new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB); 

Graphics2D g2 = bufferedImage.createGraphics(); 
g2.setColor(backColor); 
g2.fillRect(0, 0, 5, 5); 
g2.setColor(stripeColor); 
g2.drawLine(0, 0, 5, 5); // \ 
g2.drawLine(0, 5, 5, 0); ///

// paint with the texturing brush 
Rectangle2D rect = new Rectangle2D.Double(0, 0, 5, 5); 
g2d.setPaint(new TexturePaint(bufferedImage, rect)); 
g2d.fill(shape);