java bean消息驱动
时间:2011-04-02
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
import javax.swing.*;
import java.beans.*;
public class Loan extends JPanel implements ActionListener
{
protected PropertyChangeSupport changes=new PropertyChangeSupport(this);
private String loanType=new String("Personal Loan");
public void setLoanType(String temp)
{
String old=new String();
old=loanType;
loanType=temp;
changes.firePropertyChange("loanType",old,temp);
}
public String getLoanType()
{
return loanType;
}
JLabel lid,ltype;
JTextField tid,ttype;
JButton submit;
public Loan()
{
lid=new JLabel("Enter Loan Id:");
tid=new JTextField(8);
ltype=new JLabel("Loan Type:");
ttype=new JTextField(15);
submit=new JButton("ADD NEW LOAN");
setLayout(new GridLayout(3,2));
add(lid);add(tid);
add(ltype);add(ttype);
submit.addActionListener(this);
add(submit);
}
public void actionPerformed(ActionEvent evt)
{
Object obj=evt.getSource();
if(obj==
//Loan.java
/* This class contains the User Interface that Earnest Bank uses to add new loan types to the database. Whenever a new loan type is added, a property change event is generated */
submit
AN>)
setLoanType(ttype.getText());
}
public void addPropertyChangeListener(PropertyChangeListener l)
{
changes.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l)
{
changes.removePropertyChangeListener(l);
}
}
//CustomerLoan.java
/* The following class is used by Earnest Bank to accept the details of customers who take loans. Whenever a new loan type is added to the database, the loan type should be
made available to the user.
/* This class traps the property change event generated by the Loan class and adds the new loan type to its loan type combo box. */
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.beans.*;
import java.io.*;
public class CustomerLoan implements PropertyChangeListener
{
static JFrame frameObj;
JPanel mp,chp1, Mpane;
Loan lp;
BoxLayout bl;
JLabel lcname,lctype;
JTextField tcname;
JComboBox tctype;
public CustomerLoan()
{
mp=new JPanel();
chp1=new JPanel();
Mpane=new JPanel();
lp=new Loan();
//bl=new BoxLayout(mp,BoxLayout.Y_AXIS);
//bl.addLayoutComponent(new String("Loan Panel"),lp);
//bl.addLayoutComponent(new String("Customer Panel"),chp1);
Mpane.setLayout(new FlowLayout());
Mpane.add(lp);
Mpane.add(chp1);
frameObj.getContentPane().add(Mpane);
lcname=new JLabel("Customer Name:");
lctype=new JLabel("Type of Loan taken:");
tcname=new JTextField(6);
tctype=new JComboBox();
tctype.addItem(lp.AN>getLoanType());
chp1.setLayout(new GridLayout(2,2));
chp1.add(lcname);
chp1.add(tcname);
chp1.add(lctype);
chp1.add(tctype);
lp.addPropertyChangeListener(this);
}
public void propertyChange(PropertyChangeEvent pcevent)
{
System.out.println("propertyChange was call");
tctype.addItem(pcevent.getNewValue());
}
public static void main(String args[])
{
frameObj=new JFrame("Loan Frame");
new CustomerLoan();
frameObj.setSize(400,400);
frameObj.setVisible(true);
}
}
|