当我看到我的应用程序时,它不是在(0,0)上,而是在程序的中间,所以我调试了我的程序,我看到clipRegion.lox是456,loy是130,这是程序绘制的位置(0,0)。因此,我认为剪辑区域的位置是错误的,但我不知道如何修复它。有什么帮助吗?
代码:
public void changeState(int bef,int cur){
if(bef==1){
if(cur==2){
intro.setVisible(false);
this.setContentPane(play);
play.init();
play.setVisible(true);
}
}
}这是第一次我的小组开始。在play.init()中,我将套接字设置为与服务器程序连接,并启动声音文件。这就是全部。
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(new Color(255,255,255));
g.drawImage(backgroundImg, 0, 0, this);
g.drawImage(player, 368, 280, this);
for(int i=0;i<60;i++){
for(int j=0;j<100;j++){
if(map[i][j]==1){
g.drawImage(stone, (j-10)*32-dx, (i-10)*32, this);
}
else if(map[i][j]==2){
if(i>0&&map[i-1][j]==0) g.drawImage(grass, (j-10)*32-dx, (i-10)*32, this);
else g.drawImage(dirt, (j-10)*32-dx,(i-10)*32,this);
}
}
}
g.drawString(servermessage, 320, 200);
}此外,我重新绘制了它,它绘制(0,0),但它没有绘制全屏。
我认为画的图像和(456,130)到(800,600)是一样大的,所以我认为这幅画被剪掉了。
我不能上传我的照片因为名声很低..。还有什么帮助吗?
发布于 2015-06-03 14:58:29
this.setBackground(new Color(255,255,255));不要在绘画方法中设置背景。在类的构造函数中设置背景。
它不是在( 0,0)上画我的图像,而是在我的程序中的某个地方,g.drawImage(backgroundImg,0,0,this);
不,图像绘制在(0,0)处,这是相对于面板的位置。这意味着面板不是相对于框架的(0,0)绘制的。这可能是因为您使用的布局管理器是将面板定位在框架的中心。检查你的布局代码。
我看到clipRegion.lox是456个,loy是130个
如果您认为裁剪区域是错误的,这可能是因为您的面板没有首选的大小。无论何时进行自定义绘图,都应该重写getPreferredSize()方法以返回面板的大小,这样布局管理器就可以正确地完成它们的工作。也许首选的大小应该是您的形象大小?
有关更多信息和工作示例,请参阅有关定制绘画的Swing教程中的部分。
https://stackoverflow.com/questions/30612532
复制相似问题