mainframe.java

来自「java网络高级编程的配套源码,java网络高级编程为清华出版社出版.」· Java 代码 · 共 149 行

JAVA
149
字号
/*源代码清单10-15*/

package bean;

import java.awt.*;
import borland.jbcl.control.DecoratedFrame;
import java.awt.event.*;
import java.beans.*;
import java.util.*;

public class MainFrame extends DecoratedFrame implements PropertyChangeListener,KeyListener{
  FlowLayout flowLayout1 = new FlowLayout();
  Button button1 = new Button();
  Button button2 = new Button();
  Button button3 = new Button();
  Button button4 = new Button();
  LabelBean labelBean = new LabelBean();
  TextBean textBean = new TextBean();
  TextField textField1 = new TextField();
  Label label1 = new Label();

  
  public MainFrame()
  {
    try  {
      jbInit();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
    MainFrame frame=new MainFrame();
    frame.setLocation(250,250);
    frame.setSize(250,130);
    frame.show();
  }

  private void jbInit() throws Exception
  {
    this.setTitle("JavaBean示例");
    this.setSize(new Dimension(267, 129));
    button1.setLabel("红   色");
    button1.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e) {
        button1_actionPerformed(e);
      }
    });
    button2.setLabel("黄   色");
    button2.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e) {
        button2_actionPerformed(e);
      }
    });
    button3.setLabel("绿   色");
    button3.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e) {
        button3_actionPerformed(e);
      }
    });
    button4.setLabel("兰   色");
    button4.addActionListener(new java.awt.event.ActionListener()
    {
      public void actionPerformed(ActionEvent e) {
        button4_actionPerformed(e);
      }
    });
    labelBean.setText("labelBean");
    textBean.setText("缺省是黑色");
    textField1.setText("您还没有敲入字母");
    label1.setText("您还没有击打键盘");
    this.setLayout(flowLayout1);
    this.add(button1, null);
    this.add(button2, null);
    this.add(button3, null);
    this.add(button4, null);
    this.add(labelBean, null);
	//注册本对象为LabelBean的属性变化监听器    
    labelBean.addPropertyChangeListener(this);
    this.add(textBean, null);
	//注册本对象为TextBean的属性变化监听器
	//注册本对象为TextBean的事件触发监听器
    textBean.addPropertyChangeListener(this);
    textBean.addKeyListener(this);
    this.add(textField1, null);
    this.add(label1, null);
  }

  void button1_actionPerformed(ActionEvent e)
  {
    labelBean.setOutString("红色");
  }

  void button2_actionPerformed(ActionEvent e)
  {
     labelBean.setOutString("黄色");
  }

  void button3_actionPerformed(ActionEvent e)
  {
    labelBean.setOutString("绿色");
  }

  void button4_actionPerformed(ActionEvent e)
  {
    labelBean.setOutString("兰色");
  }

  public void propertyChange(PropertyChangeEvent env)
  {
    String source=env.getPropertyName();
    if(source.equals("outString")){
      String newValue=(String)env.getNewValue();
      textBean.setShowText("现在是"+newValue);
    }
    if(source.equals("showText")){
      String newValue=(String)env.getNewValue();
      try{Thread.sleep(2000);}catch(Exception e){}
      labelBean.setText(newValue);
    }
  }

  public void keyReleased(KeyEvent e)
  {
    char c=e.getKeyChar();
    label1.setText("您的键盘弹出来了!");
  }

  public void keyTyped(KeyEvent e)
  {
    char c=e.getKeyChar();
    textField1.setText("您敲入的字母是:"+c);
  }

  public void keyPressed(KeyEvent e)
  {
     char c=e.getKeyChar();
     label1.setText("您的键盘按下去了!");
  }
  
}

⌨️ 快捷键说明

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