import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class GrKlient2 extends Applet implements ActionListener, Runnable, JooniseKuular{ TextField tf1=new TextField(15); //suurus Button nupp1=new Button("Ühenda"); TextArea ta1=new TextArea(5, 20); Panel p1=new Panel(new GridLayout(2, 1)); //alumine //2 rida ja 1 veerg tabelis Panel p2=new Panel(new GridLayout(2, 1)); //tekst, tahvel Tahvel2 tahvel=new Tahvel2(); Label silt1=new Label(); PrintWriter pw1; BufferedReader br1; String seisund="algus"; JooniseKuular kuulaja=null; public GrKlient2(){ setLayout(new BorderLayout()); p1.add(tf1); p1.add(silt1); add(p1, BorderLayout.SOUTH); add(nupp1, BorderLayout.NORTH); p2.add(ta1); p2.add(tahvel); add(p2, BorderLayout.CENTER); tf1.addActionListener(this); nupp1.addActionListener(this); tahvel.lisaJooniseKuular(this); lisaJooniseKuular(tahvel); } public void lisaJooniseKuular(JooniseKuular j){ kuulaja=j; } public void actionPerformed(ActionEvent e){ if(e.getSource()==tf1){ pw1.println(tf1.getText()); tf1.setText(""); if(seisund.equals("nimesisestus")){ silt1.setText("Palun parool"); tf1.setEchoChar('*'); seisund="paroolisisestus"; } else if(seisund.equals("paroolisisestus")){ tf1.setEchoChar((char)0); silt1.setText("Kirjuta rahus"); seisund="tavatekst"; } } if(e.getSource()==nupp1){ try{ Socket sc=new Socket("don2", 3001); pw1=new PrintWriter(sc.getOutputStream(), true); br1=new BufferedReader(new InputStreamReader(sc.getInputStream())); new Thread(this).start(); silt1.setText("Palun nimi: "); seisund="nimesisestus"; }catch(Exception viga){ ta1.setText(viga.getMessage()); } } } public void run(){ try{ while(true){ String rida=br1.readLine(); if(rida.startsWith(".p")){ saada(rida); }else{ ta1.append(rida+"\n"); } } }catch(Exception viga){ viga.printStackTrace(); ta1.append("Oled väljas"); } } void saada(String andmed){ if(kuulaja==null){return;} kuulaja.kujund(andmed); } public void kujund(String andmed){ pw1.println(andmed); } public static void main(String[] argumendid){ Frame f=new Frame(); f.add(new GrKlient2()); f.setSize(300, 300); f.setVisible(true); f.addWindowListener(new Raamikuular()); } static class Raamikuular extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.out.println("Programmi ots"); System.exit(0); } } }