如何解决图像未在指定点索引处绘制
我正在尝试制作一个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();
}
}
此时未绘制图像。请帮助我在特定的位置绘制图像。
我仍然是初学者。因此,任何答案都将对我有很大帮助。
谢谢。
解决方法
您应该为自定义绘画创建一个自定义JPanel
,然后重写paintComponent()
方法以进行绘画。阅读有关Custom Painting的Swing教程中的部分,以了解一些基础知识。
存在点阵列,应在特定点重新绘制图像
您应该创建一个自定义对象,其中包含绘画所需的所有信息。因此,在您的情况下,您将需要两个属性:
- 重点
- 图片
您将此自定义对象存储在ArrayList中。因此,您的类将需要一个addCustomObject(...)
方法来将每个对象添加到ArrayList。
然后在paintComponent()
方法中循环访问ArrayList
并使用对象的属性绘制每个对象。
请查看Custom Painting Approaches中的Draw On Component
示例,以获取此方法的有效示例。
我认为您应该创建一个JFrame和JPanel并在其中绘制图像
JFrame f = new JFrame();
JPanel p = new JPanel()
{
@Override
public void paint(Graphics g)
{
g.drawImage(image,array[0].x,array[0].y,null);
}
};
f.add(p);
f.setVisible(true);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。