返回信息流class WzqBoard extends JFrame{
public WzqBoard(){
this.init();
}
private void init(){
this.setTitle("五子棋");
this.setSize(new Dimension(650,650));
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setLayout(null);
JPanel jp=new JPanel(){
public void paint(Graphics g){
g.setColor(Color.BLACK);
super.paint(g);
for(int i=0;i<15;i++)
g.drawLine(20, 20+i*Wuziqi_config.WZQ_jianju, 20+(Wuziqi_config.COLUNM-1)*Wuziqi_config.WZQ_jianju,20+i*Wuziqi_config.WZQ_jianju );
for(int i=0;i<15;i++)
g.drawLine(20+i*Wuziqi_config.WZQ_jianju, 20, 20+i*Wuziqi_config.WZQ_jianju, 20+(Wuziqi_config.ROW-1)*Wuziqi_config.WZQ_jianju);
}
};
jp.setBackground(new Color(209,167,78));
jp.setBounds(10,10,602,602);
add(jp);
}
}
为什么我把倒数第4行的setBounds注释掉就不能显示出我的for循环里面画的线了呢???
这是一条镜像帖。来源:北邮人论坛 / java / #46650同步于 2015/12/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
入门小白求各位朋友打赏
zhazha
2015/12/26镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
是不是因为没设置位置和大小就被显示到不知道哪里去了。。。
【 在 zhazha 的大作中提到: 】
: class WzqBoard extends JFrame{
: public WzqBoard(){
: this.init();
: ...................
同意楼上的观点,关键是你没有设置大小,再它添加到Frame上面的时候,paint方法就不会被回调(因为大小是0根本不需要绘制嘛)
不信你可以在你重载的paint里面打个日志
所以你至少需要setSize一下,不过setSize里面也会调setBounds,23333333
ref:http://stackoverflow.com/questions/1676187/why-is-paint-paintcomponent-never-called