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)