gui 编程问题 java

来源:百度知道 编辑:UC知道 时间:2024/05/24 11:13:45
我想创建myJPanel类,一个能够加载图片的自定义类其代码如下:
package com.xsg;

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

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class myJPanel extends JPanel{
String imageUrl = "";

public myJPanel(String imageUrl) {
super();
this.imageUrl = imageUrl;
}
java.net.URL imgURL = getClass().getResource(imageUrl);
ImageIcon backGroundImage = new ImageIcon(imgURL);

public void paintComponent(Graphics g){

super.paintComponent(g);
g.drawImage(backGroundImage.getImage(),0,0,this);

}

}
在另一个test中进行调用其代码如下:
import javax.swing.JFrame;

import com.xsg.myJPanel;

public class test {

public static void main(String[] args) {
JFrame myf = new JFrame();
myJPanel myp = new myJPanel("/images/loginBackground.jpg&quo

路径不对,如果是相对路径(相对代码所在源文件的路径),则不需要最前面那个斜线,如果能些绝对路径尽量写绝对路径(如C:\\images\\login...),windows上需要两根“\”,unix系统只需要“/”就行。一般安装软件都写相对路径,因为不知道用户具体安装位置。

稍微改了一下可以运行了:
import java.awt.Graphics;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class myJPanel extends JPanel {

String imageUrl = "";
ImageIcon backGroundImage=null;

public myJPanel(String imageUrl) {
super();
this.imageUrl = imageUrl;
URL imgURL = getClass().getResource(imageUrl);
backGroundImage= new ImageIcon(imgURL);
}

public void paintComponent(Graphics g) {

super.paintComponent(g);
g.drawImage(backGroundImage.getImage(), 0, 0, this);

}
}

Test:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class Test {