import java.awt.*;
public class Console {
public static void run(JApplet applet,int latime,int inaltime)
{
JFrame frame=new JFrame("Aplicatie -> Lista simplu inlatuita");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(latime,inaltime);
frame.getContentPane().add(applet);
applet.init();
applet.start();
frame.pack();
frame.setVisible(true);
}
}
///////clasa DeseneazaPanou//////////
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class DeseneazaPanou extends Canvas{
private int maxx;
private int maxy;
static int pozitionare=1;
public DeseneazaPanou()
{
setBackground(Color.WHITE);
maxx = 600;
maxy = 400;
repaint();
}
public Dimension getPreferredSize()
{
return new Dimension(maxx, maxy);
}
public void paint(Graphics g)
{
if(Lista.list.size()==0)
{
int x = 45;
int y = 130;
g.drawString("Nod", x,y);
g.drawLine(x+11, y + 4, x+11, y + 20);
g.drawLine(x+11, y +20, x + 7, y + 20 - 4);
g.drawLine(x+11, y +20, x + 15, y + 20 - 4);
g.drawString("null", x, y + 35);
}
else
{
int x1=35,y1=160;
int lung=45,lat=25;
for(int i=0;i
g.drawRect(x1, y1, lung, lat);
g.drawString(((Object)Lista.list.get(i)).toString(),x1+15,y1+18);
g.drawLine(x1+lung, y1 + lat/2, x1+lung+25, y1 + lat/2);
g.drawLine(x1+lung+16, y1+lat/2+5, x1+lung+25, y1+lat/2);
g.drawLine(x1+lung+16, y1+lat/2-5, x1 + lung + 25, y1 +lat/2);
x1+=lung+25;
}
g.drawString("null", x1+3, y1 + 15);
if(pozitionare==1)
{
int x = 45;
int y = 130;
g.drawString("Nod", x,y);
g.drawLine(x+11, y + 4, x+11, y + 20);
g.drawLine(x+11, y +20, x + 7, y + 20 - 4);
g.drawLine(x+11, y +20, x + 15, y + 20 - 4);
}
else
{
System.out.print("Flag");
int x = 45+(lung+25)*(pozitionare-1);
int y = 130;
g.drawString("Nod", x,y);
g.drawLine(x+11, y + 4, x+11, y + 20);
g.drawLine(x+11, y +20, x + 7, y + 20 - 4);
g.drawLine(x+11, y +20, x + 15, y + 20 - 4);
}
}
}
public void repozitionareInceput()
{
pozitionare=1;
repaint();
}
public void trecereUrmNod(LinkedList list,ListIterator it)
{
if(list.size()!=0)
{
if(pozitionare
{
pozitionare++;
System.out.println("Pozitionare: "+pozitionare);
}
else
pozitionare=1;
}
else
pozitionare=1;
repaint();
}
public boolean addElementInainte(LinkedList list,ListIterator it,String s)
{
System.out.print("\nAm e23423423423\n");
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
System.out.println("list("+i+")= "+list.get(i));
}
repaint();
return true;
}
public boolean addElementDupa ( LinkedList list,ListIterator it,String s)
{
it.add(s);
for(int i=0;i
System.out.println("list("+i+")= "+list.get(i));
}
repaint();
return true;
}
public boolean deleteElement(LinkedList list,ListIterator it)
{
if(list==null)
return false;
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
repaint();
return true;
}
public boolean hasElements(LinkedList list)
{
return list!=null;
}
}
/////////////clasa Lista//////////
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Lista extends JApplet {
static LinkedList list=new LinkedList();
ListIterator it=list.listIterator();
private JPanel panouNord, panouVest, panouEst, panouSud;
private JPanel subPanouSud;
protected JButton repozIncLista,trecereUrmNod,
stergeNod,insInainte,insDupa;
protected JTextField textField;
protected JLabel statusLabel;
private DeseneazaPanou drawArea;
public static final int latime = 800, inaltime = 780;
public void checkButtons()
{
boolean enabled = drawArea.hasElements(list);
stergeNod.setEnabled(enabled);
}
public class Ascultator implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s=e.getActionCommand();
if(s.equals("Ins Dupa"))
{
textField.setEditable(true);
System.out.println("Am fost pe aici");
String sir=textField.getText();
if(sir!=null)
{
System.out.println("\nSirul inserat:::"+sir);
drawArea.addElementDupa(list, it, sir);
Lista.this.checkButtons();
textField.setText("");
doLayout();
}
}
else
if(s.equals("Ins inainte"))
{
textField.setEditable(true);
System.out.println("Am fost pe aici 2");
String sir=textField.getText();
if(sir!=null)
{
System.out.println("\nSirul inserat:::"+sir);
drawArea.addElementInainte(list, it, sir);
Lista.this.checkButtons();
textField.setText("");
doLayout();
}
}
else
if(s.equals("Sterge Nod"))
{
textField.setEditable(false);
String value = JOptionPane.showInputDialog(Lista.this,"Sterge Element");
System.out.print("Value= "+value);
if(value!=null && value.equals("")==false)
{
if(list.contains(value))
it=list.listIterator(list.indexOf(value));
if(!drawArea.deleteElement(list,it))
JOptionPane.showMessageDialog(Lista.this,
"Elementul nu a fost gasit ",
"Sterge Element", JOptionPane.PLAIN_MESSAGE);
}
Lista.this.checkButtons();
}
}
}
public class Ascultator1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s=e.getActionCommand();
if(s.equals("Repoz inc"))
{
textField.setVisible(false);
JOptionPane.showMessageDialog(Lista.this, "Repozitionare la inc listei", "Repozitionare",
JOptionPane.PLAIN_MESSAGE);
drawArea.repozitionareInceput();
textField.setVisible(true);
}
else
if(s.equals("Trecere urm nod"))
{
System.out.println("\nddddddddddddddddddddddd");
textField.setEditable(false);
JOptionPane.showMessageDialog(Lista.this, "Repozitionare la urm", "Nodul urmator",
JOptionPane.PLAIN_MESSAGE);
drawArea.trecereUrmNod(list, it);
textField.setEditable(true);
}
}
}
public void init()
{
statusLabel=new JLabel("Lista simplu inlatuita");
panouNord = new JPanel();
panouVest = new JPanel();
panouEst = new JPanel();
panouSud = new JPanel();
drawArea = new DeseneazaPanou();
textField=new JTextField("",15);
textField.setEditable(true);
repozIncLista=new JButton("Repoz inc");
//repozIncLista.setMnemonic('R'); // asociere de tasta de apelare rapida
Ascultator1 asc1=new Ascultator1();
repozIncLista.addActionListener(asc1);
trecereUrmNod=new JButton("Trecere urm nod");
//trecereUrmNod.setMnemonic('U'); // asociere de tasta de apelare rapida
trecereUrmNod.addActionListener(asc1);
Ascultator asc=new Ascultator();
stergeNod = new JButton("Sterge Nod");
stergeNod.addActionListener(asc);
stergeNod.setEnabled(false);
insInainte = new JButton("Ins inainte");
insInainte.addActionListener(asc);
insDupa = new JButton("Ins Dupa");
insDupa.addActionListener(asc);
subPanouSud = new JPanel();
subPanouSud.setLayout(new FlowLayout());
subPanouSud.add(repozIncLista);
subPanouSud.add(trecereUrmNod);
subPanouSud.add(stergeNod);
subPanouSud.add(insInainte);
subPanouSud.add(insDupa);
subPanouSud.add(textField);
panouSud.setLayout(new BorderLayout());
panouSud.add(subPanouSud, BorderLayout.CENTER);
panouSud.add(statusLabel, BorderLayout.SOUTH);
Container container = getContentPane();
container.setLayout(new BorderLayout());
// container.add(panouNord, BorderLayout.NORTH);
container.add(new JScrollPane(drawArea), BorderLayout.CENTER);
container.add(panouVest, BorderLayout.WEST);
container.add(panouSud, BorderLayout.SOUTH);
container.add(panouEst, BorderLayout.EAST);
container.add(panouNord, BorderLayout.NORTH);
setSize(latime, inaltime);
setVisible(true);
}
public static void main(String[] args)
{
Console.run(new Lista(),latime,inaltime);
}
}
Niciun comentariu:
Trimiteți un comentariu