我正在尝试使用JPanel
在JFrame
内置的BufferedImage
上绘制一个网格线。
到目前为止,我已经使垂直线工作(排序),但我的查询与线条和背景的Color
有关。
当我运行应用程序时,JFrame
和JPanel
会出现,但背景的Color
为黑色且行为White
。好像颜色是倒置的。 (见下图)
我没有在我的Main类中设置任何Color
,JPanel
的源代码如下 -
public class MyPanel extends JPanel {
boolean[][] grid;
BufferedImage image;
Graphics2D imageG;
public MyPanel(boolean[][] newGrid) {
grid = newGrid;
image = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
imageG = image.createGraphics();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Integer cellWidth = this.getWidth() / grid.length;
for (Integer i = 0; i < grid.length + 1; i++) {
imageG.drawLine(i * cellWidth, 0, i * cellWidth, this.getHeight());
}
Graphics2D tempg = (Graphics2D) g;
tempg.fillRect(0, 0, this.getWidth(), this.getHeight());
//Draw BufferedImage
tempg.drawImage(image, 0, 0, this);
//this.getGraphics().drawImage(lineImage, 0, 0, this);
}
}
答案 0 :(得分:3)
使用 BufferedImage.TYPE_INT_ARGB
,其中表示将8位RGBA颜色分量打包为整数像素的图像。
以及之前使用 BufferedImage.TYPE_INT_RGB
,其中表示将8位RGB颜色分量打包为整数像素的图像。也缺少 {{ 1}} transparent
以及 Colors
undefined
因此它会说明那些 Colors
从上面纠正了源代码 -
Color.BLACK
希望这对你有所帮助,谢谢。