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