十六是只仙 发表于 2017-5-9 23:24:27

小白再求助....这个绘画问题出在哪.

package JianTin;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class Test_paint extends JFrame{
        public static void main(String[] args) {
                Test_paint mp = new Test_paint();
                       
               
        }
        public Test_paint(){
                this.setLocation(200, 200);
                this.setSize(500, 600);
                this.setVisible(true);
               
        }
       
       
       

        public void paint(Graphics g){
                this.setBackground(Color.BLUE);
                Image background = Toolkit.getDefaultToolkit().getImage("background.jpg"); //加载背景图片
      
      g.drawImage(background, 0, 0, 20, 30,this);
      
        }
}

直接调用paint函数不能粘在画板上吗???

zlj19931010 发表于 2017-5-10 10:14:16

本帖最后由 zlj19931010 于 2017-5-10 10:52 编辑

图片加载的方式错啦
Toolkit.getDefaultToolkit().getImage(url)
这个函数返回的iamge对象它只是记录图片的路径,具体数据要等到使用的时候去获取,即使是错误的路径也不会报错。

十六是只仙 发表于 2017-5-10 13:17:24

zlj19931010 发表于 2017-5-10 10:14
图片加载的方式错啦
Toolkit.getDefaultToolkit().getImage(url)
这个函数返回的iamge对象它只是记录图片 ...

file:///C:/Users/dell/Desktop/9R%5DI7T]94V0177%7DKZI%5BA%7BE0.png


还是不行啊,哎,还报一堆错

zlj19931010 发表于 2017-5-10 13:27:07

十六是只仙 发表于 2017-5-10 13:17
还是不行啊,哎,还报一堆错

你这一串是什么?

如果知道绝对路径就直接放进去就好了,getImage(绝对路径)

否则像我这样,通过class,或者classLoader,相对路径寻找

你图片放在哪里了?

十六是只仙 发表于 2017-5-10 15:55:23

zlj19931010 发表于 2017-5-10 13:27
你这一串是什么?

如果知道绝对路径就直接放进去就好了,getImage(绝对路径)


package JianTin;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class Test_paint extends JFrame{
        public static void main(String[] args) {
                Test_paint mp = new Test_paint();
                       
               
        }
        public Test_paint(){
                this.setLocation(200, 200);
                this.setSize(500, 600);
                this.setVisible(true);

               
        }
       
       
       

        public void paint(Graphics g){
                this.setBackground(Color.BLUE);

        }
}



其实不是图片的问题,我想问的是直接用paint函数设置背景颜色。为什么不可以在画板上显示出来{:10_266:}

零度非安全 发表于 2017-5-10 16:27:32

十六是只仙 发表于 2017-5-10 15:55
package JianTin;

import java.awt.Color;


请将继承 JFrame 换成继承 Frame

零度非安全 发表于 2017-5-10 16:52:30

十六是只仙 发表于 2017-5-10 15:55
package JianTin;

import java.awt.Color;


public void paint(Graphics g){
    this.setBackground(Color.BLUE);
    Image background = Toolkit.getDefaultToolkit().getImage("background.jpg"); //加载背景图片
    g.drawImage(background, 0, 0, 20, 30,this);
}
请将上述这条语句
Image background = Toolkit.getDefaultToolkit().getImage("background.jpg");
改为如下:
Image background = Toolkit.getDefaultToolkit().getImage(Test_paint.class.getResource("图片文件名"));
图片放在你 JianTin 包下

zlj19931010 发表于 2017-5-10 16:53:26

本帖最后由 zlj19931010 于 2017-5-10 16:56 编辑

十六是只仙 发表于 2017-5-10 15:55
package JianTin;

import java.awt.Color;


JFrame设置背景的话需要这样:this.getContentPane().setBackground(Color.blue);
或者
      this.setBackground(Color.BLUE);
      this.getContentPane().setVisible(false);
因为你看到的是那个contentPane,要么设置它的颜色,要么隐藏起来

十六是只仙 发表于 2017-5-10 21:55:44

零度非安全 发表于 2017-5-10 16:52
请将上述这条语句

改为如下:


感恩,谢谢!
页: [1]
查看完整版本: 小白再求助....这个绘画问题出在哪.