import java.io.*; import java.net.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import java.applet.*; class JS implements ItemListener, ActionListener, Runnable{ class Kasutajad{ String kasutaja=new String(); Socket yhendus=new Socket(); boolean klient=false; boolean kirj=true; boolean lug=true; } class JutukaL6im extends Thread{ Kasutajad k; public JutukaL6im(Kasutajad uus_k){ k=uus_k; start(); } private String LZ(int asi){ String sasi=asi+""; if(asi<10){ sasi="0"+asi; } return sasi; } /*aja näitamine*/ private String ajam2rk(){ Calendar aeg=Calendar.getInstance(); return "["+LZ(aeg.get(Calendar.HOUR_OF_DAY))+":"+LZ(aeg.get(Calendar.MINUTE))+"] "; } public void run(){ try{ PrintWriter pw=new PrintWriter(k.yhendus.getOutputStream(),true); BufferedReader br=new BufferedReader(new InputStreamReader(k.yhendus.getInputStream())); pw.println("Kirjuta oma kasutajanimi siia: "); k.kasutaja=br.readLine(); if(k.kasutaja.startsWith("#klient")){ k.klient=true; k.kasutaja=br.readLine(); } kas.add(k); KasList();//uuendatakse kasutajate nimekirja tekstialas boolean veel=true; /*suurem tekstiala*/ JTabbedPane suva2=(JTabbedPane)content.getComponent(1); JScrollPane suva=(JScrollPane)suva2.getComponent(0); JViewport suva0=(JViewport)suva.getComponent(0); JTextArea suva1=(JTextArea)suva0.getComponent(0); //kõigile teatatakse et uus kasutaja sisenes suva1.append(ajam2rk()+" Sisenes kasutaja "+k.kasutaja+"\n"); for(int i=0;i=3){ String sihtmärk=new String(); for(int i=0;i<2;i++){ sihtmärk=st.nextToken(); } for(int i=0;i> "+s6num); suva1.append(ajam2rk()+k.kasutaja+" ütleb iseendale >> "+s6num+"\n"); }else{ pw2.println(ajam2rk()+k.kasutaja+" ütleb sulle >> "+s6num); pw.println(ajam2rk()+" Sa ütled kasutajale "+sihtmärk+" >> "+s6num); suva1.append(ajam2rk()+k.kasutaja+" ütleb kasutajale "+sihtmärk+" >> "+s6num+"\n"); if(heli && say_heli){ say.play(); } } } } if(!leidub){ pw.println("Sellist kasutajat ei ole!"); suva1.append(ajam2rk()+k.kasutaja+" üritab olematule kasutajale midagi öelda\n"); } }else{ pw.println("Kasutamine: .ytle jutt"); suva1.append(ajam2rk()+k.kasutaja+" eksib käsu .ytle kasutamisel\n"); } } if(n2ita && k.kirj){//teksti näitamine suva1.append(ajam2rk()+k.kasutaja+">> "+s6num+"\n"); if(heli && talk_heli){ talk.play(); } for(int i=0;i> "+s6num); } } } } k.yhendus.close(); }catch(Exception e){System.out.println("Viga JutukaL6imes: "+e);} kas.remove(k); if(heli && logout_heli){ logout.play(); } KasList();//uuendatakse kasutajate nimekirja tekstialas } } /*Globaalsed muutujad*/ JPanel content=new JPanel(new BorderLayout()); Vector kas=new Vector(); AudioClip login; AudioClip logout; AudioClip talk; AudioClip say; String login_path="gong.au"; String logout_path="snore.wav"; String talk_path="ding.au"; String say_path="piiks.wav"; StringBuffer linnukesed=new StringBuffer("-------");//Peab olema globaalne JLabel L_login_heli=new JLabel(login_path); JLabel L_logout_heli=new JLabel(logout_path); JLabel L_talk_heli=new JLabel(talk_path); JLabel L_say_heli=new JLabel(say_path); JCheckBox CB_heli=new JCheckBox("Heli lubamine",false); JCheckBox CB_login=new JCheckBox("Sisselogimise heli",false); JCheckBox CB_logout=new JCheckBox("Väljalogimise heli", false); JCheckBox CB_talk=new JCheckBox("Avaliku jutu heli", false); JCheckBox CB_say=new JCheckBox("Privaatse jutu heli", false); boolean heli=false; boolean login_heli=false; boolean logout_heli=false; boolean talk_heli=false; boolean say_heli=false; JComboBox C_kas=new JComboBox(); JCheckBox CB_lugemine=new JCheckBox("Keela lugemine", false); JCheckBox CB_kirjutamine=new JCheckBox("Keela kirjutamine", false); public JS(){ //Konstruktor laseb käima selle osa, mis ühendusi hakkab kuulama uuendaHeli(); new Thread(this).start(); } public void run(){//algul on logimine ja siis tekitatakse uus l6im selle kasutajaga edasi tegelemiseks try{ ServerSocket ss=new ServerSocket(22222); while(true){ Kasutajad k=new Kasutajad(); k.yhendus=ss.accept(); if(heli && login_heli){ login.play(); } new JutukaL6im(k); } }catch(Exception e){System.out.println("Ilmnes viga: "+e);} } public void uuendaHeli(){ try{ login=Applet.newAudioClip(new File(login_path).toURL()); logout=Applet.newAudioClip(new File(logout_path).toURL()); talk=Applet.newAudioClip(new File(talk_path).toURL()); say=Applet.newAudioClip(new File(say_path).toURL()); }catch(Exception e){System.out.println("Jama heliga.");} } public void KasList(){//See funktsioon on hea kasutajate hetkeseisu näitamiseks parempoolsel tekstialal StringBuffer sb=new StringBuffer(); C_kas.removeAllItems(); for(int i=0;i