zuckjy
02-07-2011, 10:35
salve ho creato una gui che gestisce una lista attraverso un listIterator, ma quando a faccio partire mi fa fare soltanto una operazione e dopo non risponde pių ai comandi... non riesco a trovare il problema potete aiutarmi? posto qui il codice:
package util;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class ListaGUI extends JFrame {
private JMenuItem esci, nuovo, addFirst, addLast, removeFirst, removeLast,
firstElem, lastElem, vistaElem, sort, about;
private String titolo="Lista GUI";
private String impl=" Lista ";
private Lista<String> lista=new ListaConcatenata<String>();
private String elemento;
private boolean elementoOk;
public ListaGUI(){ //costruttore
setTitle("ListaGui");
setLocation(200,200);
setSize(600,400);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(consensoUscita()) System.exit(0);
}
});
AscoltatoreEventiAzione listener=new AscoltatoreEventiAzione();
//creazione barra dei menų
JMenuBar menuBar=new JMenuBar();
this.setJMenuBar(menuBar);
//creazione file menų
JMenu fileMenu=new JMenu("File");
menuBar.add(fileMenu);
//creazione voci del menu File
nuovo=new JMenuItem("Nuovo");
nuovo.addActionListener(listener);
fileMenu.add(nuovo);
esci=new JMenuItem("Esci");
esci.addActionListener(listener);
fileMenu.add(esci);
//creazione strumenti menų
JMenu struMenu=new JMenu("Strumenti");
menuBar.add(struMenu);
//creazione voci menu Strumenti
JMenu tipoAdd=new JMenu("Aggiungi");
struMenu.add(tipoAdd);
addFirst=new JMenuItem("Primo");
addFirst.addActionListener(listener);
tipoAdd.add(addFirst);
addLast=new JMenuItem("Ultimo");
addLast.addActionListener(listener);
tipoAdd.add(addLast);
JMenu tipoRem=new JMenu("Rimuovi");
struMenu.add(tipoRem);
removeFirst=new JMenuItem("Primo");
removeFirst.addActionListener(listener);
tipoRem.add(removeFirst);
removeLast=new JMenuItem("Ultimo");
removeLast.addActionListener(listener);
tipoRem.add(removeLast);
firstElem=new JMenuItem("Primo elemento");
firstElem.addActionListener(listener);
struMenu.add(firstElem);
lastElem=new JMenuItem("Ultimo elemento");
lastElem.addActionListener(listener);
struMenu.add(lastElem);
vistaElem=new JMenuItem("Vedi lista");
vistaElem.addActionListener(listener);
struMenu.add(vistaElem);
sort=new JMenuItem("Ordina lista");
sort.addActionListener(listener);
struMenu.add(sort);
//creazione menu Aiuto
JMenu helpMenu=new JMenu("Aiuto");
menuBar.add(helpMenu);
about=new JMenuItem("About Lista");
about.addActionListener(listener);
helpMenu.add(about);
menuIniziale();
//pack();
}//costruttore
private void menuIniziale() {
addFirst.setEnabled(true);
addLast.setEnabled(true);
removeFirst.setEnabled(true);
removeLast.setEnabled(true);
firstElem.setEnabled(false);
lastElem.setEnabled(false);
vistaElem.setEnabled(true);
}//menuiniziale
private boolean consensoUscita() {
int option=JOptionPane.showConfirmDialog(
null, "Sei sicuro di vole uscire?", "Uscita",
JOptionPane.YES_NO_OPTION);
return option==JOptionPane.YES_OPTION;
}//consensoUscita
private class FrameAF extends JFrame implements ActionListener{
private JTextField elemento;
private JButton ok;
public FrameAF(){
setTitle("Aggiunta elemento iniziale");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
if( verificaUscita() ){
lista.addFirst(ListaGUI.this.elemento);
}
elemento.setText("");
elementoOk=false;
FrameAF.this.setVisible(false);
}
}//windoeClosing
);
elementoOk=false;
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
p.add( new JLabel("Elemento", JLabel.RIGHT) );
p.add( elemento=new JTextField("",12) );
p.add( ok=new JButton("OK") );
add(p);
elemento.addActionListener(this);
ok.addActionListener(this);
setLocation(250,340);
setSize(400,150);
}//costruttore
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==elemento ){
ListaGUI.this.elemento=elemento.getText();
ListaGUI.this.elementoOk=true;
}
else if( e.getSource()==ok ){
if( verificaUscita() ){
lista.addFirst(ListaGUI.this.elemento);
this.setVisible(false);
elementoOk=false;
elemento.setText("");
}
}
}//actionPerformer
private boolean verificaUscita(){
return elementoOk;
}//verificaUscita
}//FrameAF
private class FrameAL extends JFrame implements ActionListener{
private JTextField elemento;
private JButton ok;
public FrameAL(){
setTitle("Aggiunta elemento finale");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
if( verificaUscita() ){
lista.addLast(ListaGUI.this.elemento);
}
elemento.setText("");
elementoOk=false;
FrameAL.this.setVisible(false);
}
}//windoeClosing
);
elementoOk=false;
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
p.add( new JLabel("Elemento", JLabel.RIGHT) );
p.add( elemento=new JTextField("",12) );
p.add( ok=new JButton("OK") );
add(p);
elemento.addActionListener(this);
ok.addActionListener(this);
setLocation(250,340);
setSize(400,150);
}//costruttore
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==elemento ){
ListaGUI.this.elemento=elemento.getText();
ListaGUI.this.elementoOk=true;
}
else if( e.getSource()==ok ){
if( verificaUscita() ){
lista.addLast(ListaGUI.this.elemento);
this.setVisible(false);
elementoOk=false;
elemento.setText("");
}
}
}//actionPerformer
private boolean verificaUscita(){
return elementoOk;
}//verificaUscita
}//FrameAL
private class FrameRF extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameRF(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.removeFirst() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameRF
private class FrameRL extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameRL(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.removeLast() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameRL
private class FrameFE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameFE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.getFirst() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameFE
private class FrameLE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameLE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.getLast() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameLE
private class FrameNE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameNE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() ); //ridondante
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
area.append( lista.toString() );
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameNE
private class AscoltatoreEventiAzione implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==esci ){
if( consensoUscita() ) System.exit(0);
}
else if( e.getSource()==addFirst ){
impl = " Aggiungi Primo ";
ListaGUI.this.setTitle(titolo+impl);
FrameAF frameAF=new FrameAF();
frameAF.setVisible(true);
}
else if( e.getSource()==addLast ){
impl = " Aggiungi Ultimo ";
ListaGUI.this.setTitle(titolo+impl);
FrameAL frameAL=new FrameAL();
frameAL.setVisible(true);
}
else if( e.getSource()==removeFirst ){
impl = " Rimuovi Primo ";
ListaGUI.this.setTitle(titolo+impl);
FrameRF frameRF=new FrameRF();
frameRF.setVisible(true);
}
else if( e.getSource()==removeLast ){
impl = " Rimuovi Ultimo ";
ListaGUI.this.setTitle(titolo+impl);
FrameRL frameRL=new FrameRL();
frameRL.setVisible(true);
}
else if( e.getSource()==firstElem ){
impl = " Primo Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameFE frameFE=new FrameFE();
frameFE.setVisible(true);
}
else if( e.getSource()==lastElem ){
impl = " Ultimo Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameLE frameLE=new FrameLE();
frameLE.setVisible(true);
}
else if( e.getSource()==vistaElem ){
impl = " Numero Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameNE frameNE=new FrameNE();
frameNE.setVisible(true);
}
else if( e.getSource()==nuovo ){
lista.clear();
}
}//actionPerformer
}//AsoltatoreEventiAzione
public static void main( String []args ){
ListaGUI l=new ListaGUI();
l.setVisible(true);
}//main
}//class ListaGUI
package util;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class ListaGUI extends JFrame {
private JMenuItem esci, nuovo, addFirst, addLast, removeFirst, removeLast,
firstElem, lastElem, vistaElem, sort, about;
private String titolo="Lista GUI";
private String impl=" Lista ";
private Lista<String> lista=new ListaConcatenata<String>();
private String elemento;
private boolean elementoOk;
public ListaGUI(){ //costruttore
setTitle("ListaGui");
setLocation(200,200);
setSize(600,400);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(consensoUscita()) System.exit(0);
}
});
AscoltatoreEventiAzione listener=new AscoltatoreEventiAzione();
//creazione barra dei menų
JMenuBar menuBar=new JMenuBar();
this.setJMenuBar(menuBar);
//creazione file menų
JMenu fileMenu=new JMenu("File");
menuBar.add(fileMenu);
//creazione voci del menu File
nuovo=new JMenuItem("Nuovo");
nuovo.addActionListener(listener);
fileMenu.add(nuovo);
esci=new JMenuItem("Esci");
esci.addActionListener(listener);
fileMenu.add(esci);
//creazione strumenti menų
JMenu struMenu=new JMenu("Strumenti");
menuBar.add(struMenu);
//creazione voci menu Strumenti
JMenu tipoAdd=new JMenu("Aggiungi");
struMenu.add(tipoAdd);
addFirst=new JMenuItem("Primo");
addFirst.addActionListener(listener);
tipoAdd.add(addFirst);
addLast=new JMenuItem("Ultimo");
addLast.addActionListener(listener);
tipoAdd.add(addLast);
JMenu tipoRem=new JMenu("Rimuovi");
struMenu.add(tipoRem);
removeFirst=new JMenuItem("Primo");
removeFirst.addActionListener(listener);
tipoRem.add(removeFirst);
removeLast=new JMenuItem("Ultimo");
removeLast.addActionListener(listener);
tipoRem.add(removeLast);
firstElem=new JMenuItem("Primo elemento");
firstElem.addActionListener(listener);
struMenu.add(firstElem);
lastElem=new JMenuItem("Ultimo elemento");
lastElem.addActionListener(listener);
struMenu.add(lastElem);
vistaElem=new JMenuItem("Vedi lista");
vistaElem.addActionListener(listener);
struMenu.add(vistaElem);
sort=new JMenuItem("Ordina lista");
sort.addActionListener(listener);
struMenu.add(sort);
//creazione menu Aiuto
JMenu helpMenu=new JMenu("Aiuto");
menuBar.add(helpMenu);
about=new JMenuItem("About Lista");
about.addActionListener(listener);
helpMenu.add(about);
menuIniziale();
//pack();
}//costruttore
private void menuIniziale() {
addFirst.setEnabled(true);
addLast.setEnabled(true);
removeFirst.setEnabled(true);
removeLast.setEnabled(true);
firstElem.setEnabled(false);
lastElem.setEnabled(false);
vistaElem.setEnabled(true);
}//menuiniziale
private boolean consensoUscita() {
int option=JOptionPane.showConfirmDialog(
null, "Sei sicuro di vole uscire?", "Uscita",
JOptionPane.YES_NO_OPTION);
return option==JOptionPane.YES_OPTION;
}//consensoUscita
private class FrameAF extends JFrame implements ActionListener{
private JTextField elemento;
private JButton ok;
public FrameAF(){
setTitle("Aggiunta elemento iniziale");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
if( verificaUscita() ){
lista.addFirst(ListaGUI.this.elemento);
}
elemento.setText("");
elementoOk=false;
FrameAF.this.setVisible(false);
}
}//windoeClosing
);
elementoOk=false;
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
p.add( new JLabel("Elemento", JLabel.RIGHT) );
p.add( elemento=new JTextField("",12) );
p.add( ok=new JButton("OK") );
add(p);
elemento.addActionListener(this);
ok.addActionListener(this);
setLocation(250,340);
setSize(400,150);
}//costruttore
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==elemento ){
ListaGUI.this.elemento=elemento.getText();
ListaGUI.this.elementoOk=true;
}
else if( e.getSource()==ok ){
if( verificaUscita() ){
lista.addFirst(ListaGUI.this.elemento);
this.setVisible(false);
elementoOk=false;
elemento.setText("");
}
}
}//actionPerformer
private boolean verificaUscita(){
return elementoOk;
}//verificaUscita
}//FrameAF
private class FrameAL extends JFrame implements ActionListener{
private JTextField elemento;
private JButton ok;
public FrameAL(){
setTitle("Aggiunta elemento finale");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
if( verificaUscita() ){
lista.addLast(ListaGUI.this.elemento);
}
elemento.setText("");
elementoOk=false;
FrameAL.this.setVisible(false);
}
}//windoeClosing
);
elementoOk=false;
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
p.add( new JLabel("Elemento", JLabel.RIGHT) );
p.add( elemento=new JTextField("",12) );
p.add( ok=new JButton("OK") );
add(p);
elemento.addActionListener(this);
ok.addActionListener(this);
setLocation(250,340);
setSize(400,150);
}//costruttore
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==elemento ){
ListaGUI.this.elemento=elemento.getText();
ListaGUI.this.elementoOk=true;
}
else if( e.getSource()==ok ){
if( verificaUscita() ){
lista.addLast(ListaGUI.this.elemento);
this.setVisible(false);
elementoOk=false;
elemento.setText("");
}
}
}//actionPerformer
private boolean verificaUscita(){
return elementoOk;
}//verificaUscita
}//FrameAL
private class FrameRF extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameRF(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.removeFirst() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameRF
private class FrameRL extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameRL(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.removeLast() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameRL
private class FrameFE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameFE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.getFirst() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameFE
private class FrameLE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameLE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() );
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
if( lista.size()!=0 )
area.append( (String) lista.getLast() );
else
area.append("Lista vuota!");
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameLE
private class FrameNE extends JFrame{
@SuppressWarnings("unused")
private JTextArea area;
public FrameNE(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p=new JPanel();
p.setLayout( new FlowLayout() ); //ridondante
JTextArea area=new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp=new JScrollPane( area );
p.add( sp );
add(p);
area.append( lista.toString() );
setLocation(250,340);
setSize(400,150);
}//costruttore
}//FrameNE
private class AscoltatoreEventiAzione implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if( e.getSource()==esci ){
if( consensoUscita() ) System.exit(0);
}
else if( e.getSource()==addFirst ){
impl = " Aggiungi Primo ";
ListaGUI.this.setTitle(titolo+impl);
FrameAF frameAF=new FrameAF();
frameAF.setVisible(true);
}
else if( e.getSource()==addLast ){
impl = " Aggiungi Ultimo ";
ListaGUI.this.setTitle(titolo+impl);
FrameAL frameAL=new FrameAL();
frameAL.setVisible(true);
}
else if( e.getSource()==removeFirst ){
impl = " Rimuovi Primo ";
ListaGUI.this.setTitle(titolo+impl);
FrameRF frameRF=new FrameRF();
frameRF.setVisible(true);
}
else if( e.getSource()==removeLast ){
impl = " Rimuovi Ultimo ";
ListaGUI.this.setTitle(titolo+impl);
FrameRL frameRL=new FrameRL();
frameRL.setVisible(true);
}
else if( e.getSource()==firstElem ){
impl = " Primo Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameFE frameFE=new FrameFE();
frameFE.setVisible(true);
}
else if( e.getSource()==lastElem ){
impl = " Ultimo Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameLE frameLE=new FrameLE();
frameLE.setVisible(true);
}
else if( e.getSource()==vistaElem ){
impl = " Numero Elemento ";
ListaGUI.this.setTitle(titolo+impl);
FrameNE frameNE=new FrameNE();
frameNE.setVisible(true);
}
else if( e.getSource()==nuovo ){
lista.clear();
}
}//actionPerformer
}//AsoltatoreEventiAzione
public static void main( String []args ){
ListaGUI l=new ListaGUI();
l.setVisible(true);
}//main
}//class ListaGUI