📄 testcustombean2.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 + -