package pack;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Anuntare extends Thread implements ActionListener {
private JFrame frame;
private JPanel panel;
private JTextField text;
private JButton buton;
private String line;
private Observat ob;
private Fisier1 fis1;
private Fisier2 fis2;
Anuntare(){
frame=new JFrame("Observable");
frame.setSize(330,300);
frame.setVisible(true);
panel=new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.LEFT,1,1));
text=new JTextField(20);
buton=new JButton("Load");
panel.add(buton);
panel.add(text);
buton.addActionListener(this);
frame.add(panel,BorderLayout.NORTH);
line=null;
ob=new Observat();
fis1=new Fisier1();
fis2=new Fisier2();
ob.addObserver(fis1);
ob.addObserver(fis2);
frame.add(fis1.p1,BorderLayout.CENTER);
frame.add(fis2.p2,BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==buton){
line=text.getText();
}
}
public void run(){
while(true){
if(line!=null){
ob.notificare(line);
line=null;
}
try{
sleep(3000);
}catch(InterruptedException e){
System.out.println("Thread intrerupt");
}
//fis1.p1.removeAll();
//fis2.p2.removeAll();
}
}
}
package pack;
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Label;
import java.io.*;
import java.util.Observable;
import java.util.Observer;
public class Fisier1 implements Observer {
public JPanel p1;
Fisier1(){
p1=new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT,1,1));
}
@Override
public void update(Observable arg0, Object arg1) {
String linie=(String)arg1;
try{
PrintWriter pw=new PrintWriter(new FileWriter("fisier1.txt"));
pw.println(linie);
pw.close();
p1.add(new Label("S-a adaugat o linie in fisier1"));
}catch(IOException e){
System.out.println("Eroare la deschiderea fisierului");
}
}
}
package pack;
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Label;
import java.io.*;
import java.util.Observable;
import java.util.Observer;
public class Fisier2 implements Observer {
public JPanel p2;
Fisier2(){
p2=new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT,1,1));
}
@Override
public void update(Observable arg0, Object arg1) {
String linie=(String)arg1;
try{
PrintWriter pw=new PrintWriter(new FileWriter("fisier2.txt"));
pw.println(linie);
pw.close();
p2.add(new Label("S-a adaugat o linie in fisier2"));
}catch(IOException e){
System.out.println("Eroare la deschiderea fisierului");
}
}
}
package pack;
import java.util.Observable;
public class Observat extends Observable {
public void notificare(String line){
this.setChanged();
this.notifyObservers(line);
}
}
package pack;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Anuntare a=new Anuntare();
a.start();
}
}
Niciun comentariu:
Trimiteți un comentariu