| 发表于:2007-01-17 01:19:14 楼主 |
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class buttontest { public static void main(string[] args){ buttonframe frame=new buttonframe(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setvisible(true); } } class buttonframe extends jframe{ public buttonframe(){ settitle( "buttontest "); setsize(default_width,default_height); buttonpanel panel=new buttonpanel(); add(panel); } public static final int default_width=300; public static final int default_height=200; } class buttonpanel extends jpanel{ public buttonpanel(){ jbutton yellowbutton=new jbutton( "yellow "); jbutton bluebutton=new jbutton( "blue "); jbutton redbutton=new jbutton( "red "); add(yellowbutton); add(bluebutton); add(redbutton); coloraction yellowaction=new coloraction(color.yellow); coloraction blueaction=new coloraction(color.blue); coloraction redaction=new coloraction(color.red); yellowbutton.addactionlistener(yellowaction); bluebutton.addactionlistener(blueaction); redbutton.addactionlistener(redaction); } private class coloraction implements actionlistener{ public coloraction(color c){ backgroundcolor=c; } public void actionperformed(actionevent event){ setbackground(backgroundcolor); } private color backgroundcolor; } } 用javac就能成功编译,但用java运行的时候就会出现在的错误: exception in thread "main " java.lang.error: do not use buttonframe.add() use but tonframe.getcontentpane().add() instead at javax.swing.jframe.createrootpaneexception(jframe.java:465) at javax.swing.jframe.addimpl(jframe.java:491) at java.awt.container.add(container.java:307) at buttonframe. <init> (buttontest.java:16) at buttontest.main(buttontest.java:6) |
|
|
|
|