luni, 3 septembrie 2012

MinichatMaiSimplu


package pack;

import javax.swing.*;

import java.io.*;
import java.net.*;

class ClientWorker implements Runnable {
private Socket client;
private JTextArea textArea;

ClientWorker(Socket client, JTextArea textArea) {
this.client = client;
this.textArea = textAarea;
}

public void run() {
String line;
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(new InputStreamReader(
client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
} catch (IOException e) {
System.out.println("in or out failed");
System.exit(-1);
}

while (true) {
try {
line = in.readLine();
out.println(line);
textArea.append("\n");
textArea.append(line);
} catch (IOException e) {
System.out.println("Read failed");
System.exit(-1);
}
}
}
}
package pack;

import java.awt.Color;

import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;
import java.net.*;


class MultiServer extends JFrame {

/**
*/
private static final long serialVersionUID = 1L;
JLabel label = new JLabel("Text received over socket:");
JPanel panel;
JTextArea textArea = new JTextArea();
ServerSocket server = null;

MultiServer() { 
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", label);
panel.add("Center", textArea);

public void listenSocket() {
try {
server = new ServerSocket(4444);
} catch (IOException e) {
System.out.println("Could not listen on port 4444");
System.exit(-1);
}
while (true) {
ClientWorker w;
try {
w = new ClientWorker(server.accept(), textArea);
Thread t = new Thread(w);
t.start();
} catch (IOException e) {
System.out.println("Accept failed: 4444");
System.exit(-1);
}
}
}

protected void finalize() {
// Objects created in run method are finalized when
// program terminates and thread exits
try {
server.close();
} catch (IOException e) {
System.out.println("Could not close socket");
System.exit(-1);
}
}

public static void main(String[] args) {
MultiServer frame = new MultiServer();
frame.setTitle("Server Program");
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}
}
package pack;

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;
import java.net.*;

class SocketClient extends JFrame implements ActionListener {

/**
*/
private static final long serialVersionUID = 1L;
JLabel text, clicked;
JButton button;
JPanel panel;
JTextField textField;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
JTextArea textArea = new JTextArea() ;

SocketClient() {

text = new JLabel("Text to send over socket:");
textField = new JTextField(20);
button = new JButton("Click Me");
button.addActionListener(this);


panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", text);
panel.add("Center", textField);
panel.add("South", button);
panel.add("East", textArea);
}

public void actionPerformed(ActionEvent event) {
Object source = event.getSource();

if (source == button) {
String text = textField.getText();

out.println(text);
textField.setText(new String(""));

try {
String line = in.readLine();
textArea.append(line+"\n");
System.out.println("Text received :" + line);
} catch (IOException e) {
System.out.println("Read failed");
System.exit(1);
}
}
}

public void listenSocket() {

try {
socket = new Socket("localhost", 4444);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
} catch (UnknownHostException e) {
System.out.println("Unknown host: localhost");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}

public static void main(String[] args) {
SocketClient frame = new SocketClient();
frame.setTitle("Client Program");
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}
}

duminică, 2 septembrie 2012

Paint_6.0


package cs.paint;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;


@SuppressWarnings("serial")
public class DragLabel extends JFrame implements MouseListener, MouseMotionListener{

JLabel label;
boolean inDrag = false;

public static void main(String[] args) {
new DragLabel();

}

public DragLabel() {
setSize(300, 200);
//setLayout(null);
label = new JLabel("Blabla");
//label.setBounds(0, 0, 50,20);
add(label);
this.addMouseListener(this);
this.addMouseMotionListener(this);

setLocationRelativeTo(null);
setVisible(true);
}

@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {

System.out.println("x="+e.getX());
System.out.println("y="+e.getY());
System.out.println("width="+label.getWidth());
System.out.println("height="+label.getHeight());
System.out.println("XLabel="+label.getX());
System.out.println("YLabel="+label.getY());
if((e.getX()-label.getX())>=0 && (e.getX()-label.getX())<=label.getWidth()) {

System.out.println("IN1");
if((e.getY()-label.getY())>=0 && (e.getY()-label.getY())<=label.getHeight()) {

System.out.println("IN2");
inDrag = true;
}
}

}

@Override
public void mouseReleased(MouseEvent e) {
inDrag = false;
}

@Override
public void mouseDragged(MouseEvent e) {
System.out.println("OUT");
if(inDrag) {

System.out.println("IN");
label.setBounds(e.getX(), e.getY(),50,20);
//label.setLocation(e.getX(), e.getY());
}


}

@Override
public void mouseMoved(MouseEvent e) {

}

}

MultiServer


package cs.server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class MultiServer {

public static void main(String[] args) {

ServerSocket server;
try {

server=new ServerSocket(9999);
System.out.println("Waiting for clients...");
while(true) {

Socket soc=server.accept();
new SimpleServer(soc);
}

} catch (IOException e) {

System.out.println("Port 9999 indisponibil");
System.exit(1);
}
}
}
package cs.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class SimpleClient {

public static void main(String[] args) {

BufferedReader in, stdin;
PrintWriter out;
Socket s;
String sir;

while (true) {
try {

s = new Socket(InetAddress.getByName("localhost"), 9999);
in = new BufferedReader(new InputStreamReader(
s.getInputStream()));
out = new PrintWriter(s.getOutputStream(),true);
stdin = new BufferedReader(new InputStreamReader(System.in));
sir = stdin.readLine();

if (sir != null) {

out.println(sir);
System.out.println(in.readLine());
}
if (sir.compareToIgnoreCase("bye") == 0) {

break;
}
} catch (UnknownHostException e) {

System.out.println("UnknownHost !");
System.exit(1);

} catch (IOException e) {

System.out.println("Connection losed !");
break;
}
}
}
}
package cs.server;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class SimpleServer extends Thread{

private Socket s;
private BufferedReader in;
private PrintWriter out;
SimpleServer(Socket s) {
this.s=s;
this.start();
}

public void run() {
try {
this.in=new BufferedReader(new InputStreamReader(this.s.getInputStream()));
this.out=new PrintWriter(this.s.getOutputStream(),true);
} catch (IOException e) {
System.out.println("Get streams error !");
System.exit(1);
}
String input;
while (true) {
try {
input=this.in.readLine();
if(input!=null) {
this.out.println("["+input+"]");
}
if(input.compareToIgnoreCase("bye")==0) {
break;
}
} catch (IOException e) {

System.out.println("Client went off");
break;
}
}
}
}

Simulare Salvare


package pack;

public class DBFile implements Display{
public void save(String dbmsg)
{
System.out.println("textul "+dbmsg+" a fost salvat ");
}
public void format()
{
System.out.println("s-a salvat in  baza de date");
}

}
package pack;

public interface Display {
public void save(String msg);
public void format();

}
package pack;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;

import javax.swing.*;

public class Test extends JFrame {
public static Display mesaj;
public static String informatie;

/**
*/
private static final long serialVersionUID = 1L;

public static void main(String[] args) {

JFrame frame = new JFrame("Modalitate de salvare a unei informatii");
frame.setSize(600, 500);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel(new FlowLayout());

panel.setPreferredSize(new Dimension(500, 400));
panel.setForeground(Color.RED);
frame.add(panel, BorderLayout.WEST);
JCheckBox txtButton = new JCheckBox("salvare txt");
JCheckBox xmlButton = new JCheckBox("salvare in format XML");
JCheckBox dbButton = new JCheckBox("salvare in baza de date");
panel.add(txtButton);
panel.add(xmlButton);
panel.add(dbButton);
txtButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

mesaj = new TxtFile();
}
});
xmlButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

mesaj = new XMLFile();
}
});
dbButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

mesaj = new DBFile();
}
});
Scanner msg=new Scanner(System.in);
System.out.println("dati textul pe care doriti sa-l salvati");
informatie=msg.next();
mesaj.save(informatie);
mesaj.format();

}

}
package pack;

public class TxtFile implements Display{
public void save(String txtmsg)
{
System.out.println("textul "+txtmsg+" a fost salvat ");
}
public void format()
{
System.out.println("s-a salvat in fisirer text");
}

}
package pack;

public class XMLFile implements Display{
public void save(String xmlmsg)
{
System.out.println("textul "+xmlmsg+" a fost salvat ");
}
public void format()
{
System.out.println("s-a salvat in format XML");
}

}

Operatii Din Text


package pack;

import java.util.ArrayList;
import java.util.Vector;

public class Adunare {
public ArrayList <Integer> v;
public Integer rezultat;
public Adunare(ArrayList <Integer> v)
{
int i;
rezultat=0;
this.v=v;
for(i=0;i<v.size();i++)
{
rezultat+=v.get(i);
}

}
public Integer getRezultat()
{
return this.rezultat;
}
}
package pack;

import java.util.ArrayList;
import java.util.Vector;

public class Inmultire {
public ArrayList <Integer> v;
public Integer rezultat;
public Inmultire(ArrayList <Integer> v)
{
int i;
rezultat=1;
this.v=v;
for(i=0;i<v.size();i++)
{
rezultat*=v.get(i);
}
}
public Integer getRezultat()
{
return this.rezultat;
}
}
package pack;

import java.awt.BorderLayout;

import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.swing.*;
public class Operatii extends JFrame implements ActionListener{

/**
*/
private static final long serialVersionUID = 1L;
JFrame frame=new JFrame("Prefered Operation");
JTextField txt=new JTextField(10);
JButton adunare= new JButton("Adunare");
JButton inmultire=new JButton("Inmultire");
JButton medie=new JButton("Medie");
ArrayList <Integer> v;
Prelucrare prel;
public int n;
public Operatii()
{
frame.setLayout(new GridBagLayout());
GridBagConstraints grid=new GridBagConstraints();
grid.gridx=0;
grid.gridy=1;
grid.anchor=GridBagConstraints.EAST;
grid.insets=new Insets(5,5,5,5);
frame.add(adunare,grid);
grid.gridx=0;
grid.gridy=2;
grid.anchor=GridBagConstraints.EAST;
grid.insets=new Insets(5,5,5,5);
frame.add(inmultire,grid);
grid.gridx=0;
grid.gridy=3;
grid.anchor=GridBagConstraints.EAST;
grid.insets=new Insets(5,5,5,5);
frame.add(medie,grid);
grid.gridx=0;
grid.gridy=0;
grid.anchor=GridBagConstraints.WEST;
grid.insets=new Insets(5,5,5,5);
frame.add(txt,grid);
adunare.addActionListener(this);
inmultire.addActionListener(this);
medie.addActionListener(this);
frame.setVisible(true);
frame.setSize(500,200);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
}


@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==adunare)
{
v=new ArrayList <Integer>();
GridBagConstraints grid=new GridBagConstraints();
grid.gridx=1;
grid.gridy=1;
JLabel label=new JLabel();
label.setText("adunare");
frame.add(label,grid);
String text;
text=txt.getText();
prel=new Prelucrare(text,v);
v=prel.getVector();
Adunare aduna=new Adunare(v);
Integer rez=0;
rez=aduna.getRezultat();
String srez=null;
srez=rez.toString();
label.setText(srez);
System.out.println(aduna.getRezultat());

}
if(e.getSource() == inmultire)
{
v=new ArrayList <Integer>();
String text;
text=txt.getText();
prel=new Prelucrare(text,v);
GridBagConstraints grid=new GridBagConstraints();
grid.gridx=1;
grid.gridy=2;
JLabel label=new JLabel();
label.setText("inmultire");
Inmultire inmult=new Inmultire(v);
Integer rez;
rez=inmult.getRezultat();
String srez=null;
srez=rez.toString();
label.setText(srez);
frame.add(label,grid);
System.out.println(inmult.getRezultat());
}
if(e.getSource()==medie)
{
v=new ArrayList <Integer>();
String text;
text=txt.getText();
prel=new Prelucrare(text,v);
GridBagConstraints grid=new GridBagConstraints();
grid.gridx=1;
grid.gridy=3;
JLabel label=new JLabel();
frame.add(label,grid);
Inmultire inmult=new Inmultire(v);
Integer rez=0;
rez=((inmult.getRezultat())/(v.size()));
String srez=null;
srez=rez.toString();
label.setText(srez);
System.out.println((inmult.getRezultat())/(v.size()));
}
}
public static void main(String[] args) {
Operatii op=new Operatii();
}

}
package pack;

import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.Vector;

public class Prelucrare {
public String s;
ArrayList <Integer>v;
public Prelucrare(String s,ArrayList<Integer>v)
{
this.v=v;
this.s=s;
StringTokenizer st;
String numar;
Integer i;
{
st=new StringTokenizer(this.s," ");
while(st.hasMoreTokens())
{
numar=st.nextToken();
i=Integer.parseInt(numar);
if(i==null)
System.out.println("nulllllllllllllllllllllllllllllllllllllllllllllllll");
v.add(i);
System.out.println(v);
}
}
}
public ArrayList<Integer> getVector()
{
return this.v;
}

}

Graf Observer


package GRAF;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

public class CanvasGraf extends Canvas {

private static final long serialVersionUID = 1L;
  private int maxx;
  private int maxy;
  private Graf graf=null;

 
  private static final double TWO_PI=2*Math.PI;
  private int diametru;
       private int raza;
  private int x;  
       private int y;
     
       public CanvasGraf()
  {
 setBackground(Color.white);
     maxx = 400;
     maxy = 400;
     repaint();
  }


  public Dimension getPreferredSize()
  {
     return new Dimension(maxx, maxy);
  }

public void paint(Graphics g)
{

        this.diametru=300;
     this.raza=this.diametru/2;
       
     maxx=this.getWidth();
        maxy=this.getHeight();
     
        this.x=maxx/4;
        this.y=maxy/5;
       
       
       g.drawString("Centru",x+raza,y+raza);
      // g.drawOval(x,y,diametru,diametru);    
         
          x+=raza;
          y+=raza;


       for(int i=0;i<10;i++)
       {
       double radians=(TWO_PI/10)*(i+1);
       double sine=Math.sin(radians);
       double cosine=Math.cos(radians);
       int dxmax = x + (int)(raza * sine);
   int dymax = y + (int)(raza * cosine);
   int dim=30;
g.fillOval(dxmax-dim/2,dymax-dim/2, dim, dim);
String info=String.valueOf((char)('A'+i));
g.drawString(info,dxmax-25,dymax);
       }
         if(this.graf!=null)
         {
        System.out.println("aaa");
        for(int i=0;i<10;i++)
           for(int j=i+1;j<10;j++)
             if(graf.Element(i,j)==1)
             {
              double radians=(TWO_PI/10)*(i+1);
                  double sine=Math.sin(radians);
                  double cosine=Math.cos(radians);
                 
                  int dxmax = x + (int)(raza * sine);
            int dymax = y + (int)(raza * cosine);
                double radians1=(TWO_PI/10)*(j+1);
                    double sine1=Math.sin(radians1);
                     double cosine1=Math.cos(radians1);
                    int dxmax1 = x + (int)(raza * sine1);
            int dymax1 = y + (int)(raza * cosine1);
           
            g.drawLine(dxmax,dymax,dxmax1,dymax1);
         }
         }

}

public boolean deseneaza(Graf g) {
// TODO Auto-generated method stub
if(g!=null)
{
System.out.println("null");
}
   this.graf=g;
repaint();
return true;


}

}
package GRAF;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

public class CanvasMatrice extends Canvas {
private static final long serialVersionUID = 1L;
private Graf graf=null;
private int maxx;
private int maxy;
public CanvasMatrice()
{
this.setBackground(Color.white);
maxx=400;
maxy=400;
repaint();
}
public void paint(Graphics g)
{
g.drawLine(20, 50, maxx-50, 50);
g.drawLine(60, 20, 60, maxy-100);
int x_start=80;
int x_end=maxx-90;
int dis_x=(x_end-x_start)/10;
int y_start=45;
for(int i=0;i<10;i++)
{
String s=String.valueOf((char)('A'+i));
g.drawString(s,x_start+i*dis_x, y_start);
}
y_start=70;
x_start=40;
int y_end=maxy-130;
int dis_y=(y_end-y_start)/10;
for(int i=0;i<10;i++)
{
String s=String.valueOf((char)('A'+i));
g.drawString(s,x_start, y_start+i*dis_y);
}
if(graf==null)
{
x_start=80;
y_start=70;
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
String s="0";
g.drawString(s,x_start+i*dis_x, y_start+j*dis_y);
}
}
   }
else
{
  x_start=80;
    y_start=70;
   
    for(int i=0;i<10;i++)
  for(int j=0;j<10;j++)
  {
  String sir=String.valueOf( (char)('0'+this.graf.Element(i,j)));
  g.drawString(sir,x_start+j*dis_x,y_start+i*dis_y);
  }
}
}
public Dimension getPreferredSize()
{
return new Dimension(maxx,maxy);
}
public boolean desenaza(Graf graf) {
// TODO Auto-generated method stub
this.graf=graf;
repaint();
return true;
}

}
package GRAF;
import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class DesenareGraf extends JFrame implements Observerr {

private static final long serialVersionUID = 1L;
private JLabel status;
private JPanel panou;
private CanvasGraf c;

public DesenareGraf(Subiect subiect) {
setTitle("Graf");
subiect.InregistrareObserver(this);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(600,600);
this.setLocationRelativeTo(null);
c=new CanvasGraf();
panou=new JPanel();
status=new JLabel("Desen Graf");
panou.add(status);
getContentPane().add(panou,BorderLayout.SOUTH);
getContentPane().add(c,BorderLayout.CENTER);
this.setVisible(true);

}


@Override
public void sendNotify(Graf graf) {
// TODO Auto-generated method stub
if(graf!=null)
this.c.deseneaza(graf);
}



}
package GRAF;

public class Graf
{
    public static final int nrV=20;
    public int mat[][];
    public Varf Varfuri[];
    public int nrVarfuri=0;
    public int i=0;
    public Graf(int nrV)
    {
    mat=new int[nrV][nrV];
    Varfuri=new Varf[nrV];
    i=0;
    nrVarfuri=nrV;
    
    for(int j=0;j<nrV;j++)
    for(int i=0;i<nrV;i++)
    {
    mat[j][i]=0;
    }
   
    }
    public void addVarf(char l)
    {
    Varfuri[i++]=new Varf(l);
    }
    
    public void addMuchie(int x,int y)
    {
    mat[x][y]=1;
    mat[y][x]=1;
    }
    public int Element(int x,int y)
    {
    return mat[x][y];
    }
    public int[][] getMatrice()
    {
    return mat;
    }
}
package GRAF;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MatriceAdiacenta extends JFrame implements Observerr {

private static final long serialVersionUID = 1L;
private JPanel panou;
private JLabel status;
private CanvasMatrice draw;
public MatriceAdiacenta(Subiect sub)
{
sub.InregistrareObserver(this);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(400, 400, 400, 400);
draw=new CanvasMatrice();
status=new JLabel("Matrice de adiacenta");
panou = new JPanel();
panou.add(status);
this.getContentPane().add(panou,BorderLayout.SOUTH);
this.getContentPane().add(draw,BorderLayout.CENTER);
this.setVisible(true);
}

@Override
public void sendNotify(Graf graf) {
if(graf!=null)
System.out.println("nooooot");
// TODO Auto-generated method stub
draw.desenaza(graf);
}

}
package GRAF;

public interface Observerr {

void sendNotify(Graf graf);

}
package GRAF;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observer;
import java.util.Vector;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Subiect extends JFrame {
public Vector observer;
 private JPanel panel1,panel2,panel3;
  private JLabel label,lstart,lend;
  private JTextField editare,start,end;
  private JButton genereaza;
  private Box box;
  private Graf graf=null;
  private MatriceAdiacenta matr=null;
  private DesenareGraf desen=null;

  public Subiect(int varf)
  {
    graf=new Graf(varf);
    observer=new Vector();
    box=new Box(BoxLayout.Y_AXIS);
panel1=new JPanel(new FlowLayout());
panel2=new JPanel(new FlowLayout());
panel3=new JPanel(new FlowLayout());
label=new JLabel("Numarul de noduri: ");
lstart=new JLabel("start:");
lend=new JLabel("  end:");
editare=new JTextField(5);
editare.setBackground(Color.WHITE);
editare.setHorizontalAlignment(JTextField.LEFT);
   editare.setEditable(false);
editare.setText(Integer.toString(varf));
   
start=new JTextField(10);
start.setBackground(Color.WHITE);
start.setHorizontalAlignment(JTextField.LEFT);
end=new JTextField(10);
end.setBackground(Color.WHITE);
end.setHorizontalAlignment(JTextField.LEFT);
panel1.add(label);
panel1.add(editare);
panel2.add(lstart);
panel2.add(start);
panel3.add(lend);
panel3.add(end);
box.add(panel1);
box.add(Box.createVerticalStrut(30));
box.add(panel2);
box.add(panel3);
Ascultator asc=new Ascultator();
getContentPane().add(box);
genereaza=new JButton("Genereaza");
genereaza.addActionListener(asc);
panel1.add(genereaza,BorderLayout.SOUTH);
getContentPane().add(panel1,BorderLayout.SOUTH);
matr=new MatriceAdiacenta(this);
desen=new DesenareGraf(this);
setBounds(300,300,300,300);
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
  
  }

public class Ascultator implements ActionListener
{

public void actionPerformed(ActionEvent e) 
{
    if(e.getActionCommand().equals("Genereaza"))
    {
    String s1=start.getText();
    String s2=end.getText();
    start.setText("");
    end.setText("");
    int x=Integer.parseInt(s1);
    int y=Integer.parseInt(s2);
    if(s1.length()==0 || s2.length()==0 || x<0 || x>9 || y<0|| y>9)
    {
    JOptionPane.showMessageDialog(null, "Date invalide (varfuri 0-9)", "Date", JOptionPane.ERROR_MESSAGE);
    }
    else
    {
    graf.addMuchie(x, y);
    notifyObservers();
    }
    }
}
 
}
@SuppressWarnings("unchecked")
public void InregistrareObserver(Observerr obs) 
{
      observer.addElement(obs);
}

public void notifyObservers() {
for(int i=0;i<observer.size();i++)
{
((Observerr) observer.elementAt(i)).sendNotify(this.graf);
}
}

@SuppressWarnings("unchecked")
public void RemovObserver(Observerr obs) {
observer.addElement(obs);
}
public static void main(String[] args) {
new Subiect(10);
}

}
package GRAF;

public class Varf {
private char eticheta;
private boolean vizitat;
public Varf()
{
}
    public Varf(char a)
    {
    this.eticheta=a;
    vizitat=false;
    }
}

DatagramServerClient


package pack;

import java.net.*;
import java.io.*;

public class DatagramClient {
public static void main(String[] args) throws IOException {
// Adresa IP si portul la care ruleaza serverul
InetAddress adresa = InetAddress.getByName(" 192.168.198.1 ");
int port = 8200;
DatagramSocket socket = null;
DatagramPacket packet = null;
byte buf[];
try {
// Construim un socket pentru comunicare
socket = new DatagramSocket();
// Construim si trimitem pachetul cu cererea catre server
buf = " Duke ".getBytes();

packet = new DatagramPacket(buf, buf.length, adresa, port);
socket.send(packet);
// Asteaptam pachetul cu raspunsul de la server
buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
// Afisam raspunsul (" Hello Duke !")
System.out.println(new String(packet.getData()));
} finally {
if (socket != null)
socket.close();
}
}
}

package pack;

import java.net.*;
import java.io.*;

public class DatagramServer {
public static final int PORT = 8200;
private DatagramSocket socket = null;
DatagramPacket cerere, raspuns = null;

public void start() throws IOException {
socket = new DatagramSocket(PORT);
try {
while (true) {
// Declaram pachetul in care va fi receptionat cererea
byte[] buf = new byte[256];
cerere = new DatagramPacket(buf, buf.length);
System.out.println(" Asteptam un pachet ... ");
socket.receive(cerere);
// Aflam adresa si portul de la care vine cererea
InetAddress adresa = cerere.getAddress();
int port = cerere.getPort();
// Construim raspunsul

String mesaj = " Hello " + new String(cerere.getData());
buf = mesaj.getBytes();
// Trimitem un pachet cu raspunsul catre client
raspuns = new DatagramPacket(buf, buf.length, adresa, port);
socket.send(raspuns);
}
} finally {
if (socket != null)
socket.close();
}
}

public static void main(String[] args) throws IOException {
new DatagramServer().start();
}
}