服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

利用java swing设计通用对话框

  在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();

扫描关注微信公众号