java窗口重写paint绘制图片不能正常显示,刚开始是运行是黑屏,后来根据网上查找改为
public void paint(Graphics g) {
super.paint(g);
}
增加了super,但是增加过后问题并没有完全解除而是变为了白屏
然后是全部代码希望可以告知问题出现在哪
package com.PVZ.Window;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.util.Observer;
import javax.swing.JFrame;
import javax.swing.text.StyledEditorKit.BoldAction;
import com.PVZ.utils.GameUtils;
public class GameWindow extends JFrame{
int width=1050;
int height=750;
int screenh;
int screenw;
public void setWindowLocation() {
//获取屏幕大小
Toolkit kit = Toolkit.getDefaultToolkit();
//获取屏幕大小(int类型)
Dimension screenSize = kit.getScreenSize();
//通过屏幕大小获取宽度和长度
screenw = screenSize.width;
screenh = screenSize.height;
}
public void lunch() {
//窗口可见
this.setVisible(true);
//窗口位置
this.setLocation((screenw-width)/2, (screenh-height)/2);
//窗口大小
this.setSize(1050,750);
//窗口标题
this.setTitle("植物大战僵尸");
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(GameUtils.bgImage,0,0,null);
g.drawImage(GameUtils.yhImage,250,30,null);
g.setColor(Color.black);
g.setFont(new Font("仿宋",Font.BOLD,25));
g.drawString("50", 275,110);
}
}
这两个值是什么
你的两个g.drawImage并没有限制绘图区域,那么原图多大它就画多大,你原图如果是全屏的一个白色,它肯定给你整个画白了呀