java paint 画不出图像
显示的是一张白板importjava.awt.*;importjavax.swing.*;publicclassTDrawLine_3_4extendsJFrame{JF...
显示的是一张白板
import java.awt.*;
import javax.swing.*;
public class TDrawLine_3_4 extends JFrame{
JFrame jf = new JFrame();
public TDrawLine_3_4(){
jf.setVisible(true);
jf.setBounds(400,300,400,300);
jf.setLocation(600,300);
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.draw3DRect(10, 10, 70, 70, true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new TDrawLine_3_4();
}
} 展开
import java.awt.*;
import javax.swing.*;
public class TDrawLine_3_4 extends JFrame{
JFrame jf = new JFrame();
public TDrawLine_3_4(){
jf.setVisible(true);
jf.setBounds(400,300,400,300);
jf.setLocation(600,300);
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.draw3DRect(10, 10, 70, 70, true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new TDrawLine_3_4();
}
} 展开
3个回答
展开全部
paint()方法只针对当前类,你又在类内声明一个JFrame jf,这个jf不会用到你声明的paint()方法的。
你要把构造方法中的jf.删除,或更改成this.
public TDrawLine_3_4(){
setVisible(true);
setBounds(400,300,400,300);
setLocation(600,300);
}
这样就把当前类显示出来了,并会调用paint()方法。
照你上面的写法,是声明了2个JFrame,并把不需要的一个显示了出来,当前编写的JFrame根本没有显示。
你要把构造方法中的jf.删除,或更改成this.
public TDrawLine_3_4(){
setVisible(true);
setBounds(400,300,400,300);
setLocation(600,300);
}
这样就把当前类显示出来了,并会调用paint()方法。
照你上面的写法,是声明了2个JFrame,并把不需要的一个显示了出来,当前编写的JFrame根本没有显示。
展开全部
你的paint(Graphics g)实例方法并没有进行调用
追问
不是自动调用吗?我调用的时候报错,找不到Graphics对象
追答
是的,之前回答错误,
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.GREEN);
g.draw3DRect(10, 10, 70, 70, true);
}
应该是这样吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-01
展开全部
第一次看到类名里用下划线,不报错么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询