package itat;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Example9_14 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame1();
}
}
class MyFrame1 extends Frame implements Runnable ,ActionListener{
Soiler wang;
Thread zhang,li;
static TextArea text;
Button start=new Button("排队买票");
MyFrame1(){
wang=new Soiler();
zhang=new Thread(this);
li=new Thread(this);
text=new TextArea(10,30);
start.addActionListener(this);
add(text,BorderLayout.CENTER);
add(start,BorderLayout.NORTH);
setVisible(true);
setSize(360,300);
validate();
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void run() {
// TODO Auto-generated method stub
if(Thread.currentThread()==zhang){
wang.soilergui(20);
}else if(Thread.currentThread()==li){
wang.soilergui(5);
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try{
zhang.start();
li.start();
}catch(Exception se){}
}
}
class Soiler{
int wunum=2,shinum=0,ershinum=0;
String s=null;
public synchronized void soilergui(int money){
if(money==5){
wunum=wunum+1;
s="给你入场卷,你的钱正好";
MyFrame1.text.append("/n"+s);
}
else if(money==20){
while(wunum<3){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
wunum=wunum-3;
ershinum=ershinum+1;
s="给你入场卷"+"你给我20元,找你15元";
MyFrame1.text.append("/n"+s);
}
notifyAll();
}
}