首页 > 解决方案 > 图像未在特定点索引处绘制

问题描述

我正在尝试制作一个 GUI 程序,其中有一个点数组,并且应该在特定点或索引处重新绘制图像。代码如下:-

import java.awt.*;

public class Trial {

    BufferedImage image = null;
    public JButton button;

    Trial(){        

        Point[] array = new Point[5];
            array[0] = new Point(150,200);

        button = new JButton("Paste");
                button.setBounds(875, 525, 125, 50);

        try{
            image = ImageIO.read(new File("C:\\GUI Program\\src\\com\\company\\Square.PNG"));
        } catch (IOException e) {
                e.printStackTrace();
                }

        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                        java.awt.Graphics g = getGraphics();
                        g.drawImage(image, array[0].x, array[0].y, null);
                    }); 
        }

    public static void main (String args[]){
        Trial trialObject = new Trial();
    }
}

图像未在该点绘制。请帮我在特定索引处绘制图像。

我仍然是一个初学者程序员。所以任何答案都会对我有很大帮助。

提前致谢。

标签: javadrawimage

解决方案


您应该JPanel为自定义绘画创建一个自定义,然后覆盖进行paintComponent()绘画的方法。阅读 Swing 教程中关于自定义绘画的部分,了解一些基础知识。

有一个点数组,应该在特定点重新绘制图像

您应该创建一个自定义对象,其中包含绘画所需的所有信息。因此,在您的情况下,您需要两个属性:

  1. 图片

您将此自定义对象存储在 ArrayList 中。因此,您的类将需要一个addCustomObject(...)方法来将每个对象添加到 ArrayList。

然后在paintComponent()方法中迭代ArrayList并使用对象的属性绘制每个对象。

查看自定义绘画方法Draw On Component中的示例,了解此方法的工作示例。


推荐阅读