2 wuzhuang12 wuzhuang12 于 2016.01.22 12:06 提问

关于java为什么我的背景图片出不来

package org.liky.game.frame;

import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class FiveChessFrame extends JFrame implements MouseListener {

//获取屏幕的高度
int height = Toolkit.getDefaultToolkit().getScreenSize().height ;
//获取屏幕的宽度
int width = Toolkit.getDefaultToolkit().getScreenSize().width ;
//图片初始化
BufferedImage background = null ;
public FiveChessFrame(){

    //设置标题
    this.setTitle("五子棋") ;
    //设置窗体大小不可改变
    this.setSize(500,500) ;
    //设置初始窗体显示的位置
    this.setLocation((width - 500)/2, (height - 500)/2) ;
    //将窗体大小设置为大小不可改变
    this.setResizable(false) ;
    //将窗体的关闭设置为默认关闭后结束
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
    //将窗体显示出来
    this.setVisible(true) ;
    //获取图片
    String image = "D:"+File.separator+"b.jpg" ;
    try {
        background = ImageIO.read(new File(image)) ;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
public void paint(Graphics g){

    g.drawImage(background , 0 , 20, this) ;
    g.drawString("黑体", 10, 30) ;
}
@Override
public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent e) {
    // TODO Auto-generated method stub

}

}

  • 图片说明

修改过后还是显示不出背景图片

package org.liky.game.frame;

import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class FiveChessFrame extends JFrame implements MouseListener {

//获取屏幕的高度
int height = Toolkit.getDefaultToolkit().getScreenSize().height ;
//获取屏幕的宽度
int width = Toolkit.getDefaultToolkit().getScreenSize().width ;
//图片初始化
BufferedImage background = null ;
public FiveChessFrame(){

    //设置标题
    this.setTitle("五子棋") ;
    //设置窗体大小不可改变
    this.setSize(500,500) ;
    //设置初始窗体显示的位置
    this.setLocation((width - 500)/2, (height - 500)/2) ;
    //将窗体大小设置为大小不可改变
    this.setResizable(false) ;
    //将窗体的关闭设置为默认关闭后结束
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
    //将窗体显示出来
    this.setVisible(true) ;
    //获取图片
    String image = "D:"+File.separator+"b.jpg" ;
    try {
        background = ImageIO.read(new File(image)) ;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
public void paint(Graphics g){
    super.paint(g) ;
    g.drawImage(background , 0 , 20, this) ;
    g.drawString("黑体", 10, 30) ;
}
@Override
public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent e) {
    // TODO Auto-generated method stub

}

}
图片说明

3个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.22 14:11
已采纳

测试了你的代码,的确无法显示背景图片,虽然 g.drawImage(background , 0 , 20, this) ;方法返回为true,但是不知道为何没有绘制背景。
如果不介意话,可以换一种方法,用JLabel设置背景。参考这个:http://ask.csdn.net/questions/232946

wuzhuang12
wuzhuang12 谢谢
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.22 13:18

String image = "D:"+File.separator+"b.jpg" ;
是放在d盘么

wuzhuang12
wuzhuang12
2 年多之前 回复
enpterexpress
enpterexpress   Rxr 2016.01.22 13:26

String image = "D:"+File.separator+"b.jpg" ;
生成的路径和你的背景图片路径一样不

wuzhuang12
wuzhuang12 谢谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
IE8背景图片不显示
做的项目我一般在chrome下测试,做完之后在IE8上测试发现背景图片不显示,代码如下: background:url(/webpage/jx/images/bg.png)repeat-x; IE9以上就可以里,但是我们的项目好多客户使用的是IE8,网上查了下,修改成: background:url(/webpage/jx/images/bg.png) repeat-x; 看出什么差别
IE模式下背景图片不显示
初衷是想给这个提交按钮加上背景图片,用了以下css样式: 1 .subtn input { 2 background-attachment: scroll; 3 background-image: url(images/btn.gif); 4 background-repeat: no-repeat; 5 background-position: 0px 0px;
将图片作为窗体背景,但是显示不出的问题解决。java。
今天突然想美化一下窗体,却出现了一个问题,图片没法显示。调整图片的大小什么的无法解决。后来想了一想是不是图片格式的问题。试了一下就出现了。 代码如下:  首先将图片导入项目中,这样我们只要写相对路径,比较省事。要注意图片的格式。将图片转化成.png的 package mysql;  import javax
为什么我在css中设定的背景图片在浏览的时候不显示?
为什么我在css中设定的背景图片在浏览的时候不显示?  CSS 专业回答 zhp943035743 2011-03-16 16:44 主要是图片路径的问题。 1.图片和网页放在同一目录下,background-image:url("图片.jpg") 2.图片放在一个image目录下。并且image目录和网页在同一目录下: background-image
wpf测试工程,获取起始递增点和结束递增点
charts在视图窗出不来,会报错,不过可以运行~~我也不知道为什么,有一个工程里的却不会~~~~
css --关于背景图片显示不出来的情况
关于背景图片,有些时候它可以正常地显示出来,但是有时候它却不可以,那究竟是什么原因呢?今天 我就是碰到了这个问题。 解决这个问题之前我们首先应该知道块级元素和行内元素,块级元素一般来说是可以设置宽和高的以及 其他的属性等等,但是行内元素是不可以设置宽高等属性的。块级元素和行内元素师取决于元素的类型 ,每一个元素都有自己的默认的类型。 接下来我们给出代码:看这里
ie下div撑不开或背景图片不显示的解决方法
其他浏览器没有问题 ie下会不显示背景图片或撑不开父div 解决方法 1:为其指定height具体数值 2:用hack指定100%,height:100%\9; 等找到更好的方法后再来更新
给button设置背景图片不显示解决了
  以前给按钮设置背景图片但是图片不显示,一直没有解决,网上也找不到正确的方法。今天终于被我解决了。其实就把button的背景颜色改改就OK了。
css在div块添加背景图片为何不显示呢?
1,css没有被调用 2,css图片地址不对 3,div的高度没有固定,是auto或者没有设值 4,div被嵌套, 5,div代码不规范 login.html文件 style.css文件 .header{ background-image:url(../image/icon.jpg); width:100%; height:100px; } 引用
UIButton的背景图片不能显示
在设置UIButton时发现加入的图片不能显示,通过调试发现imageView的hidden属性为YES,并且frame为0。  苹果默认肯定显示背景图片的,为什么呢? 解决办法: 第一种方法确认你的项目中有没有扩展UIButton文件,或者有没有扩展UIImageView的文件,看下文件重写了什么方法. 要么删了该扩展文件,或者修改重写的方法. 第二个方法在建立一个button后要手动