图像未在特定点索引处绘制
Image is not getting drawn at the specific point index
我正在尝试制作一个 GUI 程序,其中有一个点数组,应该在特定点重新绘制图像,或者 index.The 代码如下:-
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();
}
}
图像未在此处绘制。请帮我在具体索引处画图
我还是一个初学程序员。所以任何答案都会对我有很大帮助。
提前致谢。
我认为你应该创建一个 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);
您应该为自定义绘画创建自定义 JPanel
,然后覆盖 paintComponent()
方法来进行绘画。阅读有关 Custom Painting 的 Swing 教程部分,了解一些基础知识。
there is an array of points and an image should be repainted at the specific point
您应该创建一个包含绘画所需的所有信息的自定义对象。所以在你的情况下你需要两个属性:
- 点
- 图像
您将此自定义对象存储在 ArrayList 中。所以你的 class 需要一个 addCustomObject(...)
方法来将每个对象添加到 ArrayList。
然后在 paintComponent()
方法中迭代 ArrayList
并使用对象的属性绘制每个对象。
查看 Custom Painting Approaches 中的 Draw On Component
示例,了解此方法的工作示例。
我正在尝试制作一个 GUI 程序,其中有一个点数组,应该在特定点重新绘制图像,或者 index.The 代码如下:-
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();
}
}
图像未在此处绘制。请帮我在具体索引处画图
我还是一个初学程序员。所以任何答案都会对我有很大帮助。
提前致谢。
我认为你应该创建一个 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);
您应该为自定义绘画创建自定义 JPanel
,然后覆盖 paintComponent()
方法来进行绘画。阅读有关 Custom Painting 的 Swing 教程部分,了解一些基础知识。
there is an array of points and an image should be repainted at the specific point
您应该创建一个包含绘画所需的所有信息的自定义对象。所以在你的情况下你需要两个属性:
- 点
- 图像
您将此自定义对象存储在 ArrayList 中。所以你的 class 需要一个 addCustomObject(...)
方法来将每个对象添加到 ArrayList。
然后在 paintComponent()
方法中迭代 ArrayList
并使用对象的属性绘制每个对象。
查看 Custom Painting Approaches 中的 Draw On Component
示例,了解此方法的工作示例。