动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.Spring中的Template和Callback模.
.Linux下Tomcat与Apache Web.
.转:学不会的JAVA,消不了的忧愁.
.Java嵌入式开发之四.
.备忘录模式(Memento Pattern).
.取余赋值运算符 (%=).
.关于手机游戏中的炮弹轨迹—抛物.
.进一步研究字面量.
.我的Java的学习历程.
.Java开发为什么需要UML.
.用 Apache JMeter 测试 WebSpher.
.类注释文档编写方法.
.Java语言的接口与类型安全.
.用SyncML进行异构数据库复制技巧.
.Java中用Servlet容器实现程序监听.
.Webwork2结合Spring, Hibernate.
.新手入门之j2me学习方法总结--摘.
.Java 理论与实践: 非阻塞算法简介.
.深入理解abstract class和i.
.使用 Struts portlet 在门户应用.

一个javaBeans的关于RTTI的问题

发表日期:2008-1-5 |



  package frogbean;
  import Java.awt.*;
  import java.awt.event.*;
  import java.io.*;
  import java.util.*;
  /**
  * 在此处插入类型说明。
  * 创建日期:(2002-5-6 17:02:28)
  * @author:Administrator
  */
  public class BangBean extends Canvas implements Serializable {
  protected int xm,ym;
  protected int cSize=20;//circle size
  protected String text="Bang!";
  protected int fontSize=48;
  protected Color tColor=Color.red;
  protected ActionListener actionListener;
  
  class ML extends MouseAdapter{
  public void mousePressed(MouseEvent e){
  Graphics g=getGraphics();
  g.setColor(tColor);
  g.setFont(new Font("TimesRoman",Font.BOLD,fontSize));
  int width=g.getFontMetrics().stringWidth(text);
  g.drawString(text,xm,ym);
  g.dispose();
  //Call the listener's method:
  if(actionListener!=null)
  actionListener.actionPerformed(new ActionEvent(BangBean.this,ActionEvent.ACTION_PERFORMED,null));
  }
  }
  class MML extends MouseMotionAdapter{
  public void mouseMoved(MouseEvent e){
  xm=e.getX();
  ym=e.getY();
  repaint();
  }
  }
  /**
  * BangBean 构造子注解。
  */
  public BangBean() {
  addMouseListener(new ML());
  addMouseMotionListener(new MML());
  }
  public void addActionListener(ActionListener l) throws TooManyListenersException {
  if(actionListener!=null)
  throw new TooManyListenersException();
  actionListener=l;
  }
  public String getBeanText(){return text;}
  public int getCircleSize(){return cSize;}
  public int getFontSize(){return fontSize;}
  public Dimension getPreferredSize(){
  return new Dimension(200,200);
  }
  public Color getTextColor(){return tColor;}
  //Testing the BangBean:
  public static void main(String[] args){
  BangBean bb=new BangBean();
  try{
  //During testing, send action information to the console:
  bb.addActionListener(
  new ActionListener(){
  public void actionPerformed(ActionEvent e){
  System.out.println("BangBean action");
  }
  }
  );
  }catch(TooManyListenersException e){}
  Frame f=new Frame("BangBean Test");
  f.addWindowListener(
  new WindowAdapter(){
  public void windowClosing(WindowEvent e){
  System.exit(0);
  }
  }
  );
  f.add(bb,BorderLayout.CENTER);
  f.setSize(300,300);
  f.setVisible(true);
  }
  public void paint(Graphics g){
  g.setColor(Color.black);
  g.drawOval(xm-cSize/2,ym-cSize/2,cSize,cSize);
  }
  public void removeActionListener(ActionListener l){
  actionListener=null;
  }
  public void setBeanText(String newText){text=newText;}
  public void setCircleSize(int newSize){cSize=newSize;}
  public void setFontSize(int newSize){fontSize=newSize;}
  public void setTextColor(Color newColor){tColor=newColor;}
  }
  
  以上是bean类
  
  下面用Ibm visual Age for Java 自动生成调试代码,测试上边的bean
  
  package frogbean;
  
  import java.applet.*;
  import java.awt.*;
  /**
  * 在此处插入类型说明。
  * 创建日期:(2002-5-6 21:44:50)
  * @author:Administrator
  */
  public class TestBean extends Applet {
  private BangBean ivjfirst = null;
  /**
  * 返回关于此 applet 的信息。
  * @return 返回关于此 applet 信息的字符串。
  */
  public String getAppletInfo() {
  return "TestBean\n" +
  "\n" +
  "在此处插入类型说明。\n" +
  "创建日期:(2002-5-6 21:44:50)\n" +
  "@author:Administrator\n" +
  "";
  }
  /**
  * 返回 first 特性值。
  * @return frogbean.BangBean
  */
  /* 警告:此方法将重新生成。 */
  private BangBean getfirst() {
  if (ivjfirst == null) {
  try {
  ivjfirst = new frogbean.BangBean();
  ivjfirst.setName("first");
  ivjfirst.setBounds(94, 18, 200, 200);
  // user code begin {1}
  // user code end
  } catch (java.lang.Throwable ivjExc) {
  // user code begin {2}
  // user code end
  handleException(ivjExc);
  }
  }
  return ivjfirst;
  }
  /**
  * 每当部件抛出异常时被调用
  * @param exception java.lang.Throwable
  */
  private void handleException(java.lang.Throwable exception) {
  
  /* 除去下列各行的注释,以将未捕捉到的异常打印至 stdout。 */
  // System.out.println("--------- 未捕捉到的异常 ---------");
  // exception.printStackTrace(System.out);
  }
  /**
  * 初始化 applet。
  *
  * @see #start
  * @see #stop
  * @see #destroy
  */
  public void init() {
  try {
  super.init();
  setName("TestBean");
  setLayout(null);
  setSize(426, 240);
  add(getfirst(), getfirst().getName());
  // user code begin {1}
  // user code end
  } catch (java.lang.Throwable ivjExc) {
  // user code begin {2}
  // user code end
  handleException(ivjExc);
  }
  }
  /**
  * 主入口点 - 当部件作为应用程序运行时,启动这个部件。
  * @param args java.lang.String[]
  */
  public static void main(java.lang.String[] args) {
  try {
  Frame frame = new java.awt.Frame();
  TestBean aTestBean;
  Class iiCls = Class.forName("frogbean.TestBean");
  ClassLoader iiClsLoader = iiCls.getClassLoader();
  aTestBean = (TestBean)java.beans.Beans.instantiate(iiClsLoader,"frogbean.TestBean");
  frame.add("Center", aTestBean);
  frame.setSize(aTestBean.getSize());
  frame.addWindowListener(new java.awt.event.WindowAdapter() {
  public void windowClosing(java.awt.event.WindowEvent e) {
  System.exit(0);
  };
  });
  frame.setVisible(true);
  } catch (Throwable exception) {
  System.err.println("java.applet.Applet 的 main() 中发生异常");
  exception.printStackTrace(System.out);
  }
  }
  /**
  * 绘制 applet。
  * 假如此 applet 不需要绘制(例如,假如它只是其它
  * awt 部件的一个容器),则可以安全地除去此方法。
  *
  * @param g 指定的“图形”窗口
  * @see #update
  */
  public void paint(Graphics g) {
  super.paint(g);
  
  //在此处插入用来绘制 applet 的代码。
  }
  }
  
  
  其中
  TestBean aTestBean;
  Class iiCls = Class.forName("frogbean.TestBean");
  ClassLoader iiClsLoader = iiCls.getClassLoader();
  aTestBean = (TestBean)java.beans.Beans.instantiate(iiClsLoader,"frogbean.TestBean");
  是做什么用的?为什么不直接用
  TestBean aTestBean=new TestBean() ?
上一篇:怎样在应用程序中用Graphics类? 人气:824
下一篇:诊断 Java 代码: 设计“可测试的”应用程序 人气:322
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵