Java 将对象内部的ImageIcon添加到另一个类中的帧
因此,从dog对象绘制组件的方法将添加到JFrame或JPanel中 这是正确的方法还是需要调用repaint()函数 这是正确的方法还是需要调用repaint()函数 不幸的是,这不是正确的方法。Java 将对象内部的ImageIcon添加到另一个类中的帧,java,swing,user-interface,Java,Swing,User Interface,因此,从dog对象绘制组件的方法将添加到JFrame或JPanel中 这是正确的方法还是需要调用repaint()函数 这是正确的方法还是需要调用repaint()函数 不幸的是,这不是正确的方法。paintComponent(g)应该被覆盖。您需要将Dog类扩展到JComponent或JComponent的子类之一,然后重写paintComponent(g): 但是如果您只想创建一个可以通过自定义绘制绘制的狗对象,则不需要使用paintComponent()方法。您可以简单地为它创建一个dra
paintComponent(g)
应该被覆盖。您需要将Dog类扩展到JComponent或JComponent的子类之一,然后重写paintComponent(g)
:
但是如果您只想创建一个可以通过自定义绘制绘制的狗对象,则不需要使用paintComponent()
方法。您可以简单地为它创建一个draw()
方法:
class Dog extends JComponent{
@Override
paintComponent(Graphics g){
//your codes..
}
}
当您想在画布或面板中绘制狗时:
class Dog{
private ImageIcon image;
public Dog(){
java.net.URL imgUrl = getClass().getResource("dog.jpg");
image= new ImageIcon(imgUrl);
}
public void draw(Graphics g){
g.drawImage(image.getImage(), x, y, width, height, null);
}
}
这是正确的方法还是需要调用repaint()函数
不幸的是,这不是正确的方法。paintComponent(g)
应该被覆盖。您需要将Dog类扩展到JComponent或JComponent的子类之一,然后重写paintComponent(g)
:
但是如果您只想创建一个可以通过自定义绘制绘制的狗对象,则不需要使用paintComponent()
方法。您可以简单地为它创建一个draw()
方法:
class Dog extends JComponent{
@Override
paintComponent(Graphics g){
//your codes..
}
}
当您想在画布或面板中绘制狗时:
class Dog{
private ImageIcon image;
public Dog(){
java.net.URL imgUrl = getClass().getResource("dog.jpg");
image= new ImageIcon(imgUrl);
}
public void draw(Graphics g){
g.drawImage(image.getImage(), x, y, width, height, null);
}
}
@你可以看看我的解决方案,它可能是你想要的。@你可以看看我的解决方案,它可能是你想要的。