Example9_14

来源:互联网 发布:儿童读物在线阅读软件 编辑:程序博客网 时间:2024/06/05 01:01

 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();
  
 }
}

原创粉丝点击