我在绘制BufferedImage时遇到了问题,很难描述,所以你可以在视频中看到它:https://www.youtube.com/watch?v=9K-QTKHcOYA
这是我的密码:
JPanel中的
@Override
public void mouseMoved(MouseEvent e) {
if(Tool.selectedTool != null)
Tool.selectedTool.onPaintingAreaMouseMoved(e.getX(),e.getY(),z);
}
@Override
public void onPaintingAreaMouseMoved(int x, int y, int z) {
if(clicks == 1){
curve.controlPoints[1] = new Point(x, y, z);
PaintingArea.paintingArea.refresh();
}
}由于一个错误,我决定不在这里张贴我的曲线类的代码,但我检查了它,没有错误。
JPanel 类中的
public void refresh(){
axis = new int[width * height];
for (int i = 0; i < axis.length; i++)
axis[i] = background;
for(int i = 0; i < Line.lines.size(); i++) {
Point[] points = Line.lines.get(i).getPoints();
for(int m = 0; m < points.length; m++)
axis[points[m].x + width*points[m].y] = 0;
}
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setSize(width,height);
BufferedImage image = new BufferedImage( width, height, BufferedImage.TYPE_INT_RGB);
image.setRGB(0,0, width, height, axis,0, 1);
g.drawImage(image,0,0,image.getWidth(),image.getHeight(),null);
}有人能告诉我我做错了什么吗?
发布于 2021-12-20 02:30:16
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(menubar, BorderLayout.NORTH);
panel.add(toolbar, BorderLayout.WEST);
panel.add(new PaintingArea(), BorderLayout.CENTER);
add(panel);
pack();
setSize(800,700);
setVisible(true);https://stackoverflow.com/questions/70416158
复制相似问题