我有JPanel一个JFrame.我在上面加了一张图片,JPanel但它只显示了图片的一部分:这是代码的一部分,我做了它:
JPanel panelImg = new JPanel()
{
public void paintComponent(Graphics g)
{
Image img = new ImageIcon("Welcome.png").getImage();
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
g.drawImage(img, 0, 0, null);
}
};
mainFrame.add(panelImg);
Run Code Online (Sandbox Code Playgroud)
所以这就是它的样子:

完整的图片如下所示:

有没有办法将图片缩放到JFrames尺寸?提前致谢
这是我的代码"
ImageIcon ii=new ImageIcon("/Users/tushar_chutani/Desktop/apple.jpg");
Image image= ii.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH);
Run Code Online (Sandbox Code Playgroud)
图像没有缩放代码有什么问题?
我将图像绘制到jframe时出现null异常错误.我调试代码并检查图像和帧不是null但仍然在绘制图像到帧时抛出NULL异常.
请看一看 :
public void run(){
try{
ObjectInputStream objVideoIn = new ObjectInputStream(serVideoIn);
byte[] imgbytes=null;
ByteArrayInputStream barrin=null;
JFrame jf = new JFrame();
Graphics ga=jf.getGraphics(); //Getting null exception
//Thread.sleep(10000);
jf.setVisible(true);
jf.setSize(400, 400);
while(true){
int index=0;
//Thread.sleep(300);
int size= (int)objVideoIn.readObject();
imgbytes = new byte[size];
barrin = new ByteArrayInputStream(imgbytes);
System.out.println("image size" + size);
//Thread.sleep(200);
while(index<size)
{
System.out.println("reading image");
int bytesread = objVideoIn.read(imgbytes, index, size-index);
if(bytesread<0){
System.out.println("error in receiving bytes yar");
}
index+=bytesread;
}
//barrin.read(imgbytes, 0, imgbytes.length);
barrin = new ByteArrayInputStream(imgbytes);
buffImg = ImageIO.read(barrin);
if(buffImg==null) …Run Code Online (Sandbox Code Playgroud) 我最初是从 Chillax 开始的,在临近截止日期遇到这么多问题之后,我又回到了我更熟悉的 IDE NetBeans,并将我的方法更改为更基本的“Asteroid”类型游戏:
在 NetBeans 中,我得到:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at gayme.Craft.<init>(Craft.java:27)
at gayme.Board.<init>(Board.java:54)
at gayme.Gayme.<init>(Gayme.java:9)
at gayme.Gayme.main(Gayme.java:19)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
资料来源:(工艺 26 - 34)
public Craft() {
ImageIcon ii = new ImageIcon(this.getClass().getResource("craft.png"));
image = ii.getImage();
width = image.getWidth(null);
height = image.getHeight(null);
missiles = new ArrayList();
visible = true;
x = 40;
y = 60;}
Run Code Online (Sandbox Code Playgroud)
(第 54 版)
craft = new Craft();
Run Code Online (Sandbox Code Playgroud)
(同性恋 9)
add(new Board());
Run Code Online (Sandbox Code Playgroud)
(同性恋 …