在java swing编程中,程序员还可以自定义对话框,一般可以从jdialog类来继承。下面给出一个对话框类的代码:
在事件响应代码中显示出该对话框,其程序代码如下:
| class helpabout extends jdialog implements actionlistener { javaword mainframe; jbutton okbutton; javax.swing.timer mytimer; int counter=0; public helpabout(javaword mainframe) { super(mainframe,"关于本程序的说明",true); //true 代表为有模式对话框 this.mainframe= mainframe; jpanel contentpanel=new jpanel(); contentpanel.setlayout(new borderlayout()); jlabel imagelabel=new jlabel(new imageicon(".//images//javalogo.gif")); contentpanel.add(imagelabel,borderlayout.west); jpanel authorinfopane=new jpanel(); authorinfopane.setlayout(new gridlayout(1,1)); jtextarea aboutcontent=new jtextarea("本程序是作者在学习java2 swing编程的一个简单的程序,/n并不作为商业目的使用。/n作者的联系方式是:/n"); aboutcontent.enable(false); authorinfopane.add(aboutcontent); contentpanel.add(authorinfopane,borderlayout.north); jpanel sysinfopane=new jpanel(); sysinfopane.setlayout(new gridlayout(5,1)); sysinfopane.setborder(borderfactory.createloweredbevelborder()); contentpanel.add(sysinfopane,borderlayout.center); jlabel username=new jlabel("本机的用户名为:"+system.getproperty("user.name")); jlabel osname=new jlabel("本机的操作系统是:"+system.getproperty("os.name")); jlabel javaversion=new jlabel("本机中所安装的java sdk的版本号是:"+system.getproperty("java.version")); jlabel totalmemory=new jlabel("本机中java虚拟机所可能使用的总内存数:"+runtime.getruntime().totalmemory()+"字节数" ); jlabel freememory=new jlabel("本机中java虚拟机所剩余的内存数?quot;+runtime.getruntime().freememory()+"字节数" ); sysinfopane.add(username); sysinfopane.add(osname); sysinfopane.add(javaversion); sysinfopane.add(totalmemory); sysinfopane.add(freememory); jpanel okpane=new jpanel(); okbutton=new jbutton("确定(o)",new imageicon(".//images//ok.gif")); okbutton.setmnemonic('o'); //设置快捷键为"alt + o" /*以下代码是设置案钮的rollover图象*/ icon rollover = new imageicon(".//images//exit.gif"); icon general = new imageicon(".//images//ok.gif"); icon press = new imageicon(".//images//help.gif"); okbutton.setrolloverenabled(true); okbutton.seticon(general); //设置离开时的图象 okbutton.setrollovericon(rollover); //设置在按纽上时的图象 okbutton.setpressedicon(press); //设置在按下按纽时的图象 this.getrootpane().setdefaultbutton(okbutton); //设置该按钮为该对话框的默认的按钮?. okbutton.addactionlistener(this); okpane.add(okbutton); contentpanel.add("south",okpane); setcontentpane(contentpanel); // this.setresizable(false); //设置对话框为不可改变大小 mytimer=new javax.swing.timer(1000,this); mytimer.start(); } public void actionperformed(actionevent parm1) { // todo: add your code here if(parm1.getsource()==okbutton) { dispose(); } else if(parm1.getsource()==mytimer) { counter++; this.settitle("当前的定时器的值为:"+counter+"秒"); } } } |
在事件响应代码中显示出该对话框,其程序代码如下:
| helpabout aboutdialog=new helpabout(this); aboutdialog.setsize(500,500); aboutdialog.show(); |
闽公网安备 35060202000074号