首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPanel绘图BufferedImage

JPanel绘图BufferedImage
EN

Stack Overflow用户
提问于 2021-12-19 23:45:43
回答 1查看 42关注 0票数 0

我在绘制BufferedImage时遇到了问题,很难描述,所以你可以在视频中看到它:https://www.youtube.com/watch?v=9K-QTKHcOYA

这是我的密码:

JPanel中的

代码语言:javascript
复制
@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 类中的

代码语言:javascript
复制
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);
}

有人能告诉我我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-20 02:30:16

代码语言:javascript
复制
    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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70416158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档