marți, 5 iunie 2012

Lista

package pack;


import java.util.LinkedList;
import java.util.ListIterator;

public class Lista <T>  {
   
   
     
       @SuppressWarnings("unchecked")
    public boolean addElementInainte(LinkedList list,ListIterator it,T s) throws  ListFullException
       {
        if (list.size()==10)
            throw new ListFullException();
        if(it.hasNext()==false && it.hasPrevious()==false)
             {
         
            System.out.println("\nUn prim element");
            it.add(s);
       
             }
        else
        {
            System.out.println("hasPrevious() "+it.hasPrevious()+"  "+it.previous());
           
             if(it.hasPrevious()==false)
             {
                            
                 it.add(s);
                 System.out.println("\nAl doilea element");
               
             }
             else
                 {
                        
                 it.add(s);
                 }
        }   
        for(int i=0;i<list.size();i++)
        {
        
            System.out.println("list("+i+")= "+list.get(i));
        }
       
          return true;
       }
      
       @SuppressWarnings("unchecked")
    public boolean addElementDupa (LinkedList list,ListIterator it,T s) throws  ListFullException
       {
           if (list.size()==10)
                throw new ListFullException();
            it.add(s);
           System.out.println(" ");
            for(int i=0;i<list.size();i++)
            {
            
                System.out.println("list("+i+")= "+list.get(i));
               
            }
         
          return true;
       }
       @SuppressWarnings("unchecked")
    public boolean deleteElement(LinkedList list,ListIterator it) throws ListInvalidArgumentException,ListEmptyException
       {
         if(list==null)
                    throw new ListEmptyException();
         if(list.size()==1)
         {
             list.remove(0);
             it=list.listIterator();
         }
         else
        
         if(it.hasNext())
         {
             System.out.println("\nStergere: ");
             Object ob=it.next();
             if(it.hasPrevious())
                     it.previous();
             if(it.hasNext())
                     it.next();
             list.remove(ob);
         }
         else
         {
            it.previous();
            list.remove(list.size()-1);
         }
        
         
          for(int i=0;i<list.size();i++)
              System.out.println("list("+i+")= "+list.get(i));
          
       
          return true;
       }
   
       @SuppressWarnings("unchecked")
    public boolean hasElements(LinkedList list)
       {
          return list!=null;
       }
      
       public static void main(String[] args)
        throws Exception
        {
            new Frame1();
        }
     
}
/////////////////////
........clasa exceptii.....
package pack;

public class ListEmptyException extends Exception {
    public String toString()
     {
         return "Lista este goala: "+super.toString();
     }
     public String  getMessage()
     {
            return "Lista e goala ! "+super.getMessage();
       
     }

}
.........
package pack;

public class ListFullException extends Exception {
     public String toString()
     {
         return "Lista este plina: "+super.toString();
     }
     public String  getMessage()
     {
            return "Lista e plina ! "+super.getMessage();
       
     }

}
.......
package pack;

public class ListInvalidArgumentException extends Exception {
     public String toString()
     {
         return "Lista este goala: null "+super.toString();
     }
     public String  getMessage()
     {
            return "Lista e goala: null! "+super.getMessage();
       
     }

}
.........clasa frame....
package pack;



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.LinkedList;
import java.util.ListIterator;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class Frame1 extends JFrame implements ActionListener {
   
    private JButton btn1;
    private JButton btn2;
    private JButton btn3;
    private JButton btnClear;
    private JTextField txtMess;
   

    static LinkedList list=new LinkedList();
    @SuppressWarnings("unchecked")
    ListIterator it=list.listIterator();
    Lista <String> l=new Lista <String> ();
   
    public Frame1() {
        super("Lista");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        initComponents();
        pack();
       
        setResizable(true);
        setLocationRelativeTo(null);
        setVisible(true);
    }
   
    private void initComponents() {
//        setLayout(new FlowLayout());
        setLayout(new BorderLayout());
       
        JPanel pnlWest = new JPanel(new FlowLayout(FlowLayout.RIGHT));
       
        btn1 = new JButton("addElementInainte");
        btn1.addActionListener(this);
        pnlWest.add(btn1);
       
        btn2 = new JButton("addElementDupa");
        btn2.addActionListener(this);
        pnlWest.add(btn2);
       
       
        btn3=new JButton("deleteElement");
        btn3.addActionListener(this);
        pnlWest.add(btn3);
       
       
       
        btnClear = new JButton("CLEAR");
        btnClear.addActionListener(this);
        pnlWest.add(btnClear);
       
        add(pnlWest, BorderLayout.SOUTH);
       
        txtMess = new JTextField();
        add(txtMess);
        txtMess.setBackground(Color.white);
           
    }
   
    public void actionPerformed(ActionEvent e) {
        String a,b;
       
        if (e.getSource() == btn1) {
            a=txtMess.getText();
            try {
                l.addElementInainte(list,it,a);
            } catch (ListFullException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            txtMess.setText("Valoarea "+a+" a fost introdusa in lista!!");
            return;
        }
       
        if (e.getSource() == btn2) {
            b=txtMess.getText();
            try {
                l.addElementDupa(list,it,b);
            } catch (ListFullException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            txtMess.setText("Valoarea "+b+" a fost introdusa in lista!!");
            return;
        }
       
        if (e.getSource() == btn3) {
             String value = JOptionPane.showInputDialog(Frame1.this,"Sterge Element");
             if(value!=null && value.equals("")==false){
                 if(list.contains(value))
                     it=list.listIterator(list.indexOf(value));
                   
                try {
                    l.deleteElement(list,it);
                } catch (ListInvalidArgumentException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (ListEmptyException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                txtMess.setText("Valoarea introdusa a fost stearsa stearsa ");   
             }
           
            return;
        }
       
       
           
        if (e.getSource() == btnClear) {
            txtMess.setText("");
            return;
        }
    }   

}

Niciun comentariu:

Trimiteți un comentariu