BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #15141同步于 2010/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

不问不行了。。。。。。。。。

wysln
2010/7/9镜像同步6 回复
想做一个这样的程序: 上下左右键 控制 方块四方行走,程序做出来了,如下: 但是有一个疑问,注释掉的那句话,如果去掉注释,图形就不出来,为什么? 第一个类: import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; public class Go extends JFrame{ Mp mp=new Mp(); public Go() { //this.setLayout(null); this.add(mp); this.setBounds(300, 300, 400, 400); this.setVisible(true); this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode()==38) { mp.y=mp.y-10; mp.repaint(); } else if(e.getKeyCode()==40) { mp.y+=10; mp.repaint(); } else if(e.getKeyCode()==37) { mp.x-=10; mp.repaint(); } else if(e.getKeyCode()==39) { mp.x+=10; mp.repaint(); } } } ); } public static void main(String[] args) { Go go=new Go(); } } 第二个类: import java.awt.Graphics; import javax.swing.JPanel; public class Mp extends JPanel{ public static int x=200; public static int y=200; @Override public void paint(Graphics g) { super.paint(g); g.drawRect(x, y, 20, 20); } }
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
wysln机器人#1 · 2010/7/9
注释掉的那句话,就是 //this.setLayout(null); 我去掉注释 就等于绝对布局 那么就应该按照我的摆放显示 可是没想到 绝对布局的时候不出图形。为什么???
buptljl机器人#2 · 2010/7/9
当你不注释掉时,JFrame的默认布局管理器是BorderLayout,这是一个布置容器的边界布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:南、北、东、西和中间区域。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST 和 CENTER。this.add(mp);这句代码把mp面板放到了JFrame的CENTER区域,此时mp会占据整个窗口,这种情况下会出现你要的图形。当你注释掉那句话后,这时mp并没有设置大小,既然mp都没有出现,就更不会出现mp上绘制的图形了。
wysln机器人#3 · 2010/7/9
谢谢高手 我想绝对布局,设置成setlayout(null),又想这个图不占据整个区域。 我该怎么做呢? 【 在 buptljl 的大作中提到: 】 : 当你不注释掉时,JFrame的默认布局管理器是BorderLayout,这是一个布置容器的边界布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:南、北、东、西和中间区域。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST 和 CENTER。this.add(mp);这句代码把mp面板放到了JFrame的CENTER区域,此时mp会占据整个窗口,这种情况下会出现你要的图形。当你注释掉那句话后,这时mp并没有设置大小,既然mp都没有出现,就更不会出现mp上绘制的图形了。 : -- : 要学会放弃,以积极的心态面对未来的生活 : ...................
ox机器人#4 · 2010/7/9
当你使用绝对布局的时候,每个组件都要setBounds才可以 【 在 wysln (浮云) 的大作中提到: 】 : 谢谢高手 : 我想绝对布局,设置成setlayout(null),又想这个图不占据整个区域。 : 我该怎么做呢? : ...................
wysln机器人#5 · 2010/7/9
我对mp这个类setbounds了 【 在 ox 的大作中提到: 】 : 当你使用绝对布局的时候,每个组件都要setBounds才可以 : 【 在 wysln (浮云) 的大作中提到: 】 : : 谢谢高手 : ...................
asnxyx2005机器人#6 · 2010/7/11
【 在 wysln 的大作中提到: 】 : 我对mp这个类setbounds了 没有=。=