⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testcustombean2.java

📁 java模式设计
💻 JAVA
字号:
//package Property;
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
import java.beans.*;

public class TestCustomBean2 extends Applet implements MouseListener{
	//定义简单的属性color
	CustomBean2 cBean;
	Button b;


	public void init() {
	  setLayout(new BorderLayout());
	  cBean = new CustomBean2();

	  //初始化按钮"color", 设置Test	CustomBean类对按钮的单击事件进行处理
	  b = new Button("color");
	  b.addMouseListener(this);

	  //获取CustomBean2的当前颜色
	  Color tempColor = cBean.getColor();
	  String initColor = "red";
	  if (tempColor == Color.green)
	  {
		  initColor = "green";
	  }

	  //定义属性变化监听者b1, 开始它的文本框中显示的事CustomBean2的初始化颜色
	  BeanListener b1 = new BeanListener(initColor);
	  //将属性变化者b1加入到cBean的属性变化监听者列表上
	  cBean.addPropertyChangeListener(b1);
	  //将cBean放置在左上方
	  add("Center", cBean);
	  //将按钮color放在下方
	  add("South", b);
	  //将属性变化监听者b1放在右上方
	  add("East",b1);
	}
    
	public void destroy() {
	  remove(cBean);
	  remove(b);
	}

	public void mousePressed(MouseEvent e) {
	  e.consume();
	  if (cBean.getColor() == Color.red)
	  {
		 cBean.setColor(Color.green);
	  } else {
		//这里cBean会继而发出属性变化事件给监听者
	    cBean.setColor(Color.red);
	  }
	}

	public void mouseReleased(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseClicked(MouseEvent e) {}

	public static void main(String args[]) {
	  Frame f = new Frame("BeanTest");
	  TestCustomBean2 ts = new TestCustomBean2();
	  ts.init();
	  ts.start();
	  f.add("Center", ts);
	  f.setSize(300,300);
	  f.show();
	}
    
	public String getAppletInfo() {
	  return "绑定属性示例程序";
	}

}

/** 对color属性变化感兴趣的监听者*/
class BeanListener extends Panel implements PropertyChangeListener
{
	//这个文本框用来显示监听者听来的属性变化后的值
	TextField s;
	public BeanListener (String Lab) {
	  setLayout(new GridLayout(3,1));
	  add(new Label("绑定属性BEAN"));
	  add(new Label("你选择的属性是:"));
	  add(s= new TextField(Lab, 20));
	}

	/**为了实现PropertyChangeListener接口,必须实现这个方法,该方法对CustomBean2
	  发来的属性变化事件进行处理*/
	public void propertyChange(PropertyChangeEvent evt){
	  //从属性变化事件得到变化了的属性名称
	  String propertyName = evt.getPropertyName();
	  //如果是颜色属性变化了
	  if (propertyName.equalsIgnoreCase("color"))
	  {
		  String curentColor = "red";
		  //调用属性变化事件的getNewValue()方法,得到当前的新属性值,并显示在文本框中
		  if ((Color)(evt.getNewValue()) == Color.green)
		  {
			  curentColor = "green";
			  s.setText(curentColor);
		  }else {curentColor = "red"; s.setText(curentColor);}
	  }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -