Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 40

Discussione: Query & Mysql

  1. #21
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Se si clicca su Rifornisci dovrebbe partire la classe RifornimentoListener con l'ActionListener ma mi da errore nel senso che mi dice di cambiare questa chiamata:

    compra.addActionListener(new RifornimentoListener(this));

    da

    RifornimentoListener(PannelloRifornimento) in RifornimentoListener(PannelloMagazzino)

    è colpa del this? mi sta sfuggendo qualcosa...
    Il costruttore di RifornimentoListener è:

    public RifornimentoListener(PannelloRifornimento pAcquisto)

    mentre in:

    compra.addActionListener(new RifornimentoListener(this));

    il this è riferito alla istanza di PannelloMagazzino (sei appunto nel costruttore PannelloMagazzino).

    Ovviamente i due tipi non corrispondono.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #22
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il costruttore di RifornimentoListener è:

    public RifornimentoListener(PannelloRifornimento pAcquisto)

    mentre in:

    compra.addActionListener(new RifornimentoListener(this));

    il this è riferito alla istanza di PannelloMagazzino (sei appunto nel costruttore PannelloMagazzino).

    Ovviamente i due tipi non corrispondono.
    Eh, e come fare? Perché io sono in PannelloMagazzino ma poi voglio che cliccando il tasto parta PannelloRifornimento...

    E si può integrare PannelloRifornimento in PannelloMagazzino lato gui?

  3. #23
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Eh, e come fare? Perché io sono in PannelloMagazzino ma poi voglio che cliccando il tasto parta PannelloRifornimento...
    public class PannelloRifornimento extends JFrame

    Quindi PannelloRifornimento è una "finestra". Basta istanziare la classe e siccome c'è il setVisible(true) nel costruttore, è già visibile appena dopo la costruzione (più precisamente, appena il controllo ritorna al framework).

    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    E si può integrare PannelloRifornimento in PannelloMagazzino lato gui?
    Che vuoi dire "integrare"?? PannelloRifornimento è un frame a sé stante.


    Molta confusione ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #24
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Quote Originariamente inviata da andbin Visualizza il messaggio
    public class PannelloRifornimento extends JFrame

    Quindi PannelloRifornimento è una "finestra". Basta istanziare la classe e siccome c'è il setVisible(true) nel costruttore, è già visibile appena dopo la costruzione (più precisamente, appena il controllo ritorna al framework).
    Niente, non ci sto riuscendo e non sto capendo dove sto sbagliando... arghhhh

    Classe PannelloRifornimento
    codice:
    public class PannelloRifornimento extends JFrame {	
    	private static final int LARGHEZZA = 430;
    	private static final int ALTEZZA = 150;
    	
    	
    	JTextField nomeprodottoText, quantitaText;
    	JTextArea descrizioneText;
    	
    	public PannelloRifornimento() {
    		
    		setTitle("Inserisci prodotto da rifornire:");
    		setSize(LARGHEZZA,ALTEZZA);
    		
    		JPanel pannello = new JPanel();
    		pannello.setLayout(null);
    		
    		JLabel nomeprodottoLabel = new JLabel("Nome Prodotto: ");
    		nomeprodottoLabel.setBounds(10,10,125,25);
    		pannello.add(nomeprodottoLabel);
    		
    		nomeprodottoText = new JTextField(20);
    		nomeprodottoText.setBounds(120,10,160,25);
    		pannello.add(nomeprodottoText);
    		
    		JLabel quantitaLabel = new JLabel("Quantità: ");
    		quantitaLabel.setBounds(10,50,80,25);
    		pannello.add(quantitaLabel);
    				
    		quantitaText = new JTextField(20);
    		quantitaText.setBounds(120,50,160,25);
    		pannello.add(quantitaText);
    		
    		
    		JButton signup = new JButton("Ordina!");
    		signup.setBackground(Color.LIGHT_GRAY);
    		signup.addActionListener(new RifornimentoListener(this));
    		signup.setBounds(300,30, 80,25);
    		pannello.add(signup);
    		
    		add(pannello);
    		
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    		
    	}
    	
    	public String getNomeProdottoText(){
    		return nomeprodottoText.getText();
    	}
    	
    	
    	public int getQuantitaText(){
    		return Integer.parseInt(quantitaText.getText());
    	}
    }

    Che vuoi dire "integrare"?? PannelloRifornimento è un frame a sé stante.


    Molta confusione ....[/QUOTE]

    Classe RifornimentoListener

    codice:
    public class RifornimentoListener implements ActionListener {
    
    
    		PannelloRifornimento pRifornimento;
    		
    		public void actionPerformed(ActionEvent e){
    		String nomeprodotto = pRifornimento.getNomeProdottoText();
    		int quantita = pRifornimento.getQuantitaText();
    		
    		boolean rifornimentoPossibile = ProdottoManager.getInstance().checkRifornimento(nomeprodotto, quantita);
    		
    		if(rifornimentoPossibile == true){
    			ProdottoManager.getInstance().acquistaRifornimento(nomeprodotto, quantita);	
    		}
    	}
    
    
    	public RifornimentoListener(PannelloRifornimento pRifornimento) {
    		PannelloRifornimento pannelloRifornimento = new PannelloRifornimento();
    	}
    	
    }
    mi esce questo errore sintomo di un loop... sicuro devo resettare un attimo la mente

    at magazzino.view.PannelloRifornimento.<init>(Pannell oRifornimento.java:50) at magazzino.listeners.RifornimentoListener.<init>(Ri fornimentoListener.java:26)
    at magazzino.view.PannelloRifornimento.<init>(Pannell oRifornimento.java:50)

    in continuazione...

  5. #25
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    codice:
    	public RifornimentoListener(PannelloRifornimento pRifornimento) {
    		PannelloRifornimento pannelloRifornimento = new PannelloRifornimento();
    	}
    Il costruttore di PannelloRifornimento istanzia new RifornimentoListener(this)
    Il costruttore di RifornimentoListener costruisce un altro PannelloRifornimento.
    Il costruttore di PannelloRifornimento istanzia new RifornimentoListener(this)
    Il costruttore di RifornimentoListener costruisce un altro PannelloRifornimento.
    ecc..

    lo vedi il "circolo"?

    Lo ripeto ... MOLTA confusione ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #26
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Allora................ vediamo se riusciamo a districare la matassa:

    Classe PannelloMagazzino - Frame con dentro pulsante che dovrebbe aprire PannelloPrenotazione tramite RifornimentoListener

    codice:
    public static final int LARGHEZZA = 900;	public static final int ALTEZZA = 400;
    	
    	public PannelloMagazzino(){
    	
    	setTitle("Pannello Magazziniere");
    	setSize(LARGHEZZA,ALTEZZA);
    	
    	JPanel pannello = new JPanel();
    	pannello.setLayout(null);
    	
    	JButton compra = new JButton("Ordina prodotto");
    	compra.setBackground(Color.LIGHT_GRAY);
    	compra.addActionListener(new RifornimentoListener(this));
    	compra.setBounds(30,30, 160,25);
    	pannello.add(compra);
    	
    	JButton visualizza = new JButton("Visualizza Magazzino");
    	visualizza.setBackground(Color.LIGHT_GRAY);
    	//compra.addActionListener(new CompraListener(this));
    	visualizza.setBounds(30,60, 160,25);
    	pannello.add(visualizza);
    	
    	add(pannello);
    	}
    	
    	public static void main(String[] args){
    		PannelloMagazzino pannelloMagazzino = new PannelloMagazzino();
    		pannelloMagazzino.setVisible(true);
    		}
    }
    Classe PannelloRifornimento (che dovrebbe essere aperta da RifornimentoListener, che permette di inserire nomeprodotto e quantità da prenotare e dovrebbe avere al sui interno pulsante che invoca ConfermaRifornimentoListener che modifica i dati nel db tramite dbConnection
    codice:
    public class PannelloRifornimento extends JFrame {	
    	private static final int LARGHEZZA = 430;
    	private static final int ALTEZZA = 150;
    	
    	
    	JTextField nomeprodottoText, quantitaText;
    	JTextArea descrizioneText;
    	
    	public PannelloRifornimento() {
    		super();
    		
    		setTitle("Inserisci prodotto da rifornire:");
    		setSize(LARGHEZZA,ALTEZZA);
    		
    		JPanel pannello = new JPanel();
    		pannello.setLayout(null);
    		
    		JLabel nomeprodottoLabel = new JLabel("Nome Prodotto: ");
    		nomeprodottoLabel.setBounds(10,10,125,25);
    		pannello.add(nomeprodottoLabel);
    		
    		nomeprodottoText = new JTextField(20);
    		nomeprodottoText.setBounds(120,10,160,25);
    		pannello.add(nomeprodottoText);
    		
    		JLabel quantitaLabel = new JLabel("Quantità: ");
    		quantitaLabel.setBounds(10,50,80,25);
    		pannello.add(quantitaLabel);
    				
    		quantitaText = new JTextField(20);
    		quantitaText.setBounds(120,50,160,25);
    		pannello.add(quantitaText);
    		
    		
    		JButton signup = new JButton("Ordina!");
    		signup.setBackground(Color.LIGHT_GRAY);
    		signup.addActionListener(new ConfermaRifornimentoListener(this));
    		signup.setBounds(300,30, 80,25);
    		pannello.add(signup);
    		
    		add(pannello);
    		
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    		
    	}
    	
    	public String getNomeProdottoText(){
    		return nomeprodottoText.getText();
    	}
    	
    	
    	public int getQuantitaText(){
    		return Integer.parseInt(quantitaText.getText());
    	}
    }
    Classe RifornimentoListener

    codice:
    public class RifornimentoListener implements ActionListener {
    
    	PannelloMagazzino magazzinoRifornimento;
    	
    	public void actionPerformed(ActionEvent e){
    		 PannelloRifornimento pRifornimento = new PannelloRifornimento();
    	}
    		
    	
    
    
    	public RifornimentoListener(PannelloMagazzino magazzinoRifornimento) {
    		this.magazzinoRifornimento = magazzinoRifornimento;
    	}
    	
    }
    Classe ConfermaRifornimentoListener
    codice:
    public class ConfermaRifornimentoListener implements ActionListener {
    
    	PannelloRifornimento pRifornimento;
    	
    		public void actionPerformed(ActionEvent e){
    			String nomeprodotto = pRifornimento.getNomeProdottoText();
    			int quantita = pRifornimento.getQuantitaText();
    			
    			boolean rifornimentoPossibile = ProdottoManager.getInstance().checkRifornimento(nomeprodotto, quantita);
    			
    			if(rifornimentoPossibile == true){
    				ProdottoManager.getInstance().acquistaRifornimento(nomeprodotto, quantita);	
    	}
    	
    	public ConfermaRifornimentoListener (PannelloRifornimento pRifornimento) {
    		this.pRifornimento = pRifornimento;
    	}
    }
    	
    }
    Mi da errore proprio in quest'ultima classe (e di conseguenza nell'invocazione a questa action listener in PannelloRifornimento)
    Mi esce:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem: The constructor ConfermaRifornimentoListener(PannelloRifornimento) is undefined


    at magazzino.view.PannelloRifornimento.<init>(Pannell oRifornimento.java:51)
    at magazzino.businness.MainClass.main(MainClass.java: 10)


  7. #27
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    il weekend è passato ma ancora non son riuscito a districare la matassa di questo listener... help please!

  8. #28
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    il weekend è passato ma ancora non son riuscito a districare la matassa di questo listener... help please!
    Sinceramente, è un po' difficile aiutarti .... cambi le cose in continuazione e facendo errori abbastanza grossolani (es. quel "loop" di costruzioni).

    Fino ad adesso stai cercando di avere i listener come classi separate. Questo non è proprio ottimale, detto in generale. Se sono classi separate, vedi bene anche tu che devi per forza passare qualcosa al costruttore che faccia da "contesto". E devi rendere disponibili all'esterno metodi come getNomeProdottoText() in modo che la classe del listener possa usarli.

    Sempre detto in generale, i listener sarebbe bene implementarli il più vicino e "intimo" possibile a dove hai a gestisci i componenti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #29
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Credo di esserne venuto a capo... e anche questa è andata!
    Si, cambio le cose in continuazione perché sto studiando quindi approccio, mi documento, cambio, sbaglio, provo a correggere, sperimento... insomma è tutto un continuo divenire :P

  10. #30
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Per quel che riguarda gli action listener... io sto seguendo il modello del mio prof che li mette in un package a parte.
    Mi chiedevo però... ho una finestra dove si clicca "Ordina" che apre un'altra finestra dove c'è un altro tasto "Conferma ordinazione".
    Per i due tasti ho creato due classi diverse "RifornimentoListener" e "ConfermaRifornimentoListener". Va bene così o dovrei/potrei unirli in un'unica classe "RifornimentoListener" che racchiude all'interno i due listener?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.