java里面的frame panel applet 如果不用布局管理器的话..直接用坐标定位组件或者用paint()画图
坐标都是十分混乱的..有哪位高手可以详细讲解一下
坐标都是十分混乱的..有哪位高手可以详细讲解一下
解决方案 »
- Arrays.binarySearch(Aa, 5);是什么意思.....
- 大哥 你是高手,请速度来。。。:)
- JAVA: Vector<Vector<People>> vvPeople的用法与解释
- vector里面包换多个hashtable,如何把这些K-V Pairs取出来
- 求一随机生成字符串的算法!~
- 如何应用正则表达式分解表达式中的标记
- 求快速插入记录
- 哪位有一个VisualJ++6.0能给我一个吗?
- jdbNavToolBar问题,给100分
- 一个简单例子:关于java线程对象的销毁问题, 非常困惑!
- jdk1.5,jdk1.6,jdk1.7的区别和联系是什么?
- 现在如何从官网找到jdk1.6,并下载?
Applet设置了大小。。
paint()里面getSize().width/height获得大小
但是屏幕中间的width就变成了真正的Applet的宽了..
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;import javax.swing.ImageIcon;
public class ImageTest extends Applet implements KeyListener{
private Image img;
private int imgW;
private int imgH;
private ImageIcon icon;
private int moveH;
private int moveW;
private int Width;
private int Height;
public void init(){
java.net.URL BaseURL=getCodeBase();
//img=getImage(BaseURL,"e:\\kira java\\HitPlane\\pic\\hero.gif");
icon=new ImageIcon("e:\\kira java\\HitPlane\\pic\\hero.gif");
img=icon.getImage();
imgW=img.getWidth(null);
imgH=img.getHeight(null);
System.out.println(imgW+" "+imgH);
setSize(500,600);
addKeyListener(this);
Width=getSize().height;
Height=getSize().width;
moveH=getSize().height;
moveW=getSize().width;
}
public void paint(Graphics g){
Graphics2D g2=(Graphics2D)g;
final AffineTransform identity=new AffineTransform();
AffineTransform at=new AffineTransform();
at.setTransform(identity);
g2.drawImage(img,moveW/2-imgW/2 ,moveH-imgH,this);
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
int keyCode=arg0.getKeyCode();
if (keyCode==KeyEvent.VK_UP){
this.moveH-=5;
if(moveH<=0) moveH=0;
repaint();
}
else if (keyCode==KeyEvent.VK_DOWN){
this.moveH+=5;
if(moveH>=600-imgH) moveH=600;
repaint();
}
else if (keyCode==KeyEvent.VK_LEFT){
this.moveW-=10;
if(moveW<=0) moveW=imgW/2;
repaint();
}
else if (keyCode==KeyEvent.VK_RIGHT){
this.moveW+=10;
if(moveW>=Width) moveW=Width;
repaint();
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
但是if(moveW>=Width) moveW=Width;这句是用真实的width值来约束位置,画的时候g2.drawImage(img,moveW/2-imgW/2 ,moveH-imgH,this);当然就是以width/2为限制了。
更详细的解释参见Java 2D advance image API