import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class TextFrame1 implements ActionListener {
Frame f=new Frame("第一个窗体");
int i=0;
public static void main(String[] args){
TextFrame1 tf=new TextFrame1();
tf.init();
}
public void init()
{ f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyWindowListener());
Button btn=new Button("更换背景");
btn.addActionListener(new TextFrame1());
f.add(btn,"North");
}
public void actionPerformed(ActionEvent e){
Image[] im={new ImageIcon("c:\\1.jpg").getImage(),
new ImageIcon("c:\\2.jpg").getImage(),
new ImageIcon("c:\\3.jpg").getImage(),
new ImageIcon("c:\\4.jpg").getImage(),
new ImageIcon("c:\\5.jpg").getImage()};
f.getGraphics().drawImage(im[i],0,0,300,300,f);
i++;
if(i==5) i=0;
}
}
class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
System.exit(0);
}
}
import java.awt.event.*;
import javax.swing.*;public class TextFrame1 implements ActionListener {
Frame f=new Frame("第一个窗体");
int i=0;
public static void main(String[] args){
TextFrame1 tf=new TextFrame1();
tf.init();
}
public void init()
{ f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyWindowListener());
Button btn=new Button("更换背景");
btn.addActionListener(new TextFrame1());
f.add(btn,"North");
}
public void actionPerformed(ActionEvent e){
Image[] im={new ImageIcon("c:\\1.jpg").getImage(),
new ImageIcon("c:\\2.jpg").getImage(),
new ImageIcon("c:\\3.jpg").getImage(),
new ImageIcon("c:\\4.jpg").getImage(),
new ImageIcon("c:\\5.jpg").getImage()};
f.getGraphics().drawImage(im[i],0,0,300,300,f);
i++;
if(i==5) i=0;
}
}
class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
System.exit(0);
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TextFrame1.actionPerformed(TextFrame1.java:31)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
也就相当于重新建了个TestFrame1,可是那个init方法只在main里调用过啊...
这个程序即使跑起来了,也是个bug程序...
每换一次背景,就会重新new TestFrame1,而且之前的TestFrame1也不会释放...
换成这个就行了.
btn.addActionListener(this);还有...Image[] im={new ImageIcon("c:\\1.jpg").getImage(),
new ImageIcon("c:\\2.jpg").getImage(),
new ImageIcon("c:\\3.jpg").getImage(),
new ImageIcon("c:\\4.jpg").getImage(),
new ImageIcon("c:\\5.jpg").getImage()};换到属性里还有......f.setVisible(true);放到方法的后边去
import java.awt.event.*;
import javax.swing.*;public class TextFrame1 implements ActionListener {
Frame f=new Frame("第一个窗体");
int i=0;
public static void main(String[] args){TextFrame1 tf=new TextFrame1();tf.init();
}
public void init()
{ f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyWindowListener());
Button btn=new Button("ok");
btn.addActionListener(this);
f.add(btn,"North");}
public void actionPerformed(ActionEvent e){Image[] im={new ImageIcon("c:\\1.jpg").getImage(),
new ImageIcon("c:\\2.jpg").getImage(),
new ImageIcon("c:\\3.jpg").getImage(),
new ImageIcon("c:\\4.jpg").getImage(),
new ImageIcon("c:\\5.jpg").getImage()};
f.getGraphics().drawImage(im[i],0,0,300,300,f);
i++;
if(i==5) i=0;
}
}class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
System.exit(0);
}
}ok!!!!!!