永发信息网

java中如何用画布做出移动方格的图形?

答案:1  悬赏:30  手机版
解决时间 2021-03-28 10:23
java中如何用画布做出移动方格的图形?
最佳答案
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Example6_8 extends JFrame implements ActionListener
{
private JButton left=new JButton("向左移");
private JButton right=new JButton("向右移");
private JButton up=new JButton("向上移");
private JButton down=new JButton("向下移");
MoveCanvas drawing=new MoveCanvas();
private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}
public Example6_8()
{
super("移动方块");
setSize(400,400);
setVisible(true);
Panel p=new Panel();
p.setLayout(new FlowLayout());
setLayout(new BorderLayout());
add(p,BorderLayout.SOUTH);
add(drawing,BorderLayout.CENTER);
p.add(up);
p.add(down);
p.add(left);
p.add(right);
validate();
left.addActionListener(this);
right.addActionListener(this);
up.addActionListener(this);
down.addActionListener(this);
addWindowListener(new WindowCloser());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==up)
drawing.moveUp();
else if(e.getSource()==down)
drawing.moveDown();
else if(e.getSource()==left)
drawing.moveLeft();
else if(e.getSource()==right)
    drawing.moveRight();
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new Example6_8();
}
}
class MoveCanvas extends Canvas
{
int WIDTH=30,HEIGHT=30,INC=10;
int i,j;
public void paint(Graphics g)
{
g.drawRect(0,0,getSize().width-1,getSize().height-1);
g.setColor(Color.black);
g.fillRect(i+2,j+2,WIDTH+2,HEIGHT+2);
g.setColor(Color.red);
g.fillRect(i,j,WIDTH,HEIGHT);
}
public void moveUp()
{
if(j>0)
j-=INC;
else
j=getSize().height-INC;
repaint();
}
public void moveDown()
{
if(j j+=INC;
else
j=0;
repaint();
}
public void moveLeft()
{
if(i>0)
i-=INC;
else
i=getSize().width-INC;
repaint();
}
public void moveRight()
{
if(i i+=INC;
else
i=0;
repaint();
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
京剧是国粹吗,至少我不认为
我是o型腿,请问我的正常走路姿势应该是怎么
吉他谱上面的两个x上有弧线怎么弹
求类似 “够钟” “有人”之类的粤语歌
c++ getchar()用法
希望幼儿园(长白路)地址在什么地方,想过去办
如何在淘宝拉黑买家,禁止他再来买东西
不是说领动后排能放倒吗
镇远镖局·天外飞仙客栈地址有知道的么?
Microsoft Office PowerPoint是什么意思
RFID硅胶腕带定做怎么选
不要心软不要表态是什么意思
有一段形容爱情恋爱观的 其中有一句类似是这
cFXB40FC521一86苏泊尔电饭煲。 我不会用
单选题在1~10中,既是合数、又是互质数的有
推荐资讯
photoshop保存什么格式才能在cdr中打开?
1—35序数词和缩写形式
君若扬鞭催战马,福禄双至在人为,生为凡夫莫
在铅的熔点下作业有危害吗
第三套人民币五元炼钢工人手里拿的叫什么
2016年乐山移动宽带资费标准?
一个数取似近值得1.85,这个数最大是A.1.845B
关于《老子》中的一句话 使民复结绳而用之 结
截然的反义词是什么
汽车前挡风玻璃裂痕能修补吗?
地理:洋盆和海盆有什么区别?
上坟可以穿粉色衣服么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?