程序如下:
package example;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BackFrame {
JFrame frm;
JPanel pnl;
Backimage bi;
public void frm(){
frm=new JFrame("背景图片");
pnl=new JPanel();
bi=new Backimage();
bi.setImage(new ImageIcon("bg.jpg").getImage());
pnl.add(bi);
frm.add(pnl);
frm.setLocation(500, 100);
frm.setSize(600, 450);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
BackFrame bf=new BackFrame();
bf.frm();
}
}
package example;
import java.awt.Graphics;
import java.awt.Image;
public class Backimage extends javax.swing.JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
Image image=null;
Graphics g=this.getGraphics();
public void setImage(Image image){
this.image=image;
this.paintComponent(g);
}
public void paintComponent(Graphics g){
if(image!=null){
boolean b=g.drawImage(image, 0,0,this);
System.out.println(b);
}
super.paintComponent(g);
}
}报的是错误是:
Exception in thread "main" java.lang.NullPointerException
at example.Backimage.paintComponent(Backimage.java:17)
at example.Backimage.setImage(Backimage.java:13)
at example.BackFrame.frm(BackFrame.java:13)
at example.BackFrame.main(BackFrame.java:23)
但是我不知道哪里空指针了???
如果你有好的实现背景图片的程序可以分享一下!!!!
package example;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BackFrame {
JFrame frm;
JPanel pnl;
Backimage bi;
public void frm(){
frm=new JFrame("背景图片");
pnl=new JPanel();
bi=new Backimage();
bi.setImage(new ImageIcon("bg.jpg").getImage());
pnl.add(bi);
frm.add(pnl);
frm.setLocation(500, 100);
frm.setSize(600, 450);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
BackFrame bf=new BackFrame();
bf.frm();
}
}
package example;
import java.awt.Graphics;
import java.awt.Image;
public class Backimage extends javax.swing.JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
Image image=null;
Graphics g=this.getGraphics();
public void setImage(Image image){
this.image=image;
this.paintComponent(g);
}
public void paintComponent(Graphics g){
if(image!=null){
boolean b=g.drawImage(image, 0,0,this);
System.out.println(b);
}
super.paintComponent(g);
}
}报的是错误是:
Exception in thread "main" java.lang.NullPointerException
at example.Backimage.paintComponent(Backimage.java:17)
at example.Backimage.setImage(Backimage.java:13)
at example.BackFrame.frm(BackFrame.java:13)
at example.BackFrame.main(BackFrame.java:23)
但是我不知道哪里空指针了???
如果你有好的实现背景图片的程序可以分享一下!!!!
解决方案 »
- java中Graphics类的调用问题
- Java与数据库MySQL
- spring mvc中的controller怎么获取PageContext?
- String[]赋值问题
- jdbcodbc驱动和微软的jdbc驱动,还有第三方驱动jdns有什么差别?
- 通过数字证书验证用户身份,在服务器端如何实现?如何确保交易的不可抵赖的特性??
- 关于exe4j的问题,高手请帮忙啊
- Java中JTable、JTableHeader显示问题
- 如何将数据库中得到的数据,存储到二维数组中?
- 关于java的import的问题
- 有谁能答:已知一棵完全二叉树各节点的编号为0到n,如何得出其第一个非叶子节点的编号
- ibatis动态传入表名,操作符,参数
public static void main(String[] args)
String args[] 和String[] args是一样的啊
at example.Backimage.paintComponent(Backimage.java:17)第17行你看看你17号是什么代码 ,就知道为啥空指针了,,,
package example;
import java.awt.Graphics;
import java.awt.Image;
public class Backimage extends javax.swing.JPanel{
private static final long serialVersionUID = 1L;
Image image=null; public void setImage(Image image){
this.image=image;
repaint();
}
public void paintComponent(Graphics g){
if(image!=null){
boolean b=g.drawImage(image, 0,0,this);
System.out.println(b);
}
super.paintComponent(g);
}
}
String... args
String args[]
推荐使用前两种。
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;public class Example extends JFrame{
private static final long serialVersionUID = 3667932590042261671L;
private static Image image = Toolkit.getDefaultToolkit().
getImage(Example.class.getClassLoader().getResource("image.png"));
public Example(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,300);
this.setVisible(true);
this.setResizable(false);
}
public void paint(Graphics g){
super.paint(g);
this.setIconImage(image);
g.drawImage(image, 0,0,300,300,null);
}
public static void main(String[] args){
new Example();
}
}
另外String []args
和String args[]那不是一样吗???