Errore visualizzazione del jframe per un messaggio di errore

di palestrato il
3 risposte
Ragazzi, ho voluto implementare nel mio programma una finestra di errore nel momento in cui si clicca sul bottone registra senza aver compilato tutti i campi.. il problema è che mi da diversi errori..
public class GestorePulsante implements ActionListener {
	
	private JTextField tipo;
	private JTextField prezzo;
	private JTextArea scontrino;
	private JTextArea listaconsumazioni;
	private JTextArea guadagnototale;
	private ListaConsumazioni l;
	
	
	public GestorePulsante(JTextArea a,JTextArea b,JTextField tipo,JTextField prezzo,JTextArea c,ListaConsumazioni lista){
		this.tipo=tipo;
		this.prezzo = prezzo;
		this.scontrino = a;
		this.listaconsumazioni = b;
		this.guadagnototale = c;
		this.l = lista;
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		/*if(tipo.getText()==" " || prezzo.getText()==" "){
			JFrame f2 = new JFrame("Errore");
			JPanel p2 = new JPanel();
			
			p2.setLayout(new BoxLayout(p2,BoxLayout.Y_AXIS));
			JLabel errore = new JLabel("Errore,inserisci tutti i campi");
			errore.setAlignmentX(Component.CENTER_ALIGNMENT);
			JButton ok = new JButton("Ok");
			ok.setAlignmentX(Component.CENTER_ALIGNMENT);
			
			p2.add(errore);
			p2.add(ok);
			
			ok.addActionListener(new GestorePulsanteErrore(f2));
			f2.addWindowListener(new GestoreFinestra());
			f2.getContentPane().add(p2);
			f2.setSize(200,200);
			f2.setLocation(500,300);
			f2.pack();
			f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			f2.setVisible(true);
			
		}else{*/
		
		Consumazione consumazione = new Consumazione(tipo.getText(),Double.parseDouble(prezzo.getText()));
		l.InserisciInLista(consumazione);
		tipo.setText("");
		prezzo.setText("");
		scontrino.setText("");
		listaconsumazioni.setText("");
		guadagnototale.setText("");
		
		scontrino = this.ScriviScontrino(consumazione);
		listaconsumazioni = this.AggiornaLista();
		guadagnototale = this.AggiornaGuadagno();
		
		//}
	
	}

	private JTextArea AggiornaGuadagno() {
		double totale = 0; 
		Nodo curr = l.getHead();
		
		while(curr!=null){
			totale = totale + curr.getInfo().getPrezzo();
			curr=curr.getLink();
		}
		
		
		guadagnototale.setText(String.valueOf(totale+"€"));
		
		return guadagnototale;
	}

	private JTextArea AggiornaLista() {
		Nodo curr = l.getHead();
		
		while(curr!=null){
			listaconsumazioni.append(curr.getInfo().ToString());
			curr=curr.getLink();
		}
		
		return listaconsumazioni;
	}

	private JTextArea ScriviScontrino(Consumazione consumazione) {
		
		
		scontrino.append("Modesto Panetti Bari");
		scontrino.append("CASSA 1");
		scontrino.append("Programma realizzato da Tommaso Perilli");
		scontrino.append(consumazione.ToString());
		scontrino.append("ARRIVEDERCI E GRAZIE!");
		
		return scontrino;
	}
	

}
questa è la classe GestorePulsante che viene chiamata nel momento in cui clicco su un bottone.. le istruzioni riservate per il JFrame di errore le ho commentate.. per il resto invece è tutto okay, non ho nessun tipo di problema..

3 Risposte

  • Ho modificato in questo modo:
    public void actionPerformed(ActionEvent e) {
    	
    		if(tipo.getText().equals("") || prezzo.getText().equals("")){
    			JButton ok = new JButton("Ok");
    			JOptionPane.showMessageDialog(null,"Errore,inserisci tutti i campi"+ok);
    		}else{
    		
    		Consumazione consumazione = new Consumazione(tipo.getText(),Double.parseDouble(prezzo.getText()));
    		l.InserisciInLista(consumazione);
    		tipo.setText("");
    		prezzo.setText("");
    		scontrino.setText("");
    		listaconsumazioni.setText("");
    		guadagnototale.setText("");
    		
    		this.ScriviScontrino(consumazione);
    		this.AggiornaLista();
    		this.AggiornaGuadagno();
    		
    		}
    mi esce il messaggio ma insieme al messaggio mi escono anche altri caratteri.. insomma non mi si visualizza solo il messaggio che vorrei
  • palestrato ha scritto:


    			JButton ok = new JButton("Ok");
    			JOptionPane.showMessageDialog(null,"Errore,inserisci tutti i campi"+ok);
    
    Non c'è assolutamente bisogno di mettere esplicitamente un pulsante "OK" in un "normale" message dialog. In ogni caso non con la concatenazione delle stringhe, visto che il toString() dei componenti è poco/nulla significativo per l'utente finale.
  • Si infatti ho aggiornato così:
    JOptionPane.showMessageDialog(null,"Errore,inserisci tutti i campi");
    e mi va tutto bene, grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte