Vorrei chiedere una cosa perché ho un dubbio.
Posso invocare un metodo di un'altra classe dentro ad un costruttore di una classe?
Vorrei chiedere una cosa perché ho un dubbio.
Posso invocare un metodo di un'altra classe dentro ad un costruttore di una classe?
E per quale recondito motivo non dovresti poterlo fare ?
perché non riesco a farlo.. lo richiamo dentro una espressione lambda contenuta in un costruttore e non me lo fa fare .... :P
ho creato una cosa che però credo sia oltre la mia preparazione....
costruttore della classe main.
ho ridotto il codice altrimenti non c'entra... fammi sapere se ti può bastare..codice:public Menu() throws ClassNotFoundException, SQLException { super(titolo); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new FlowLayout(FlowLayout.LEFT)); JPanel panelCenter = new JPanel(); super.setJMenuBar(menuBar); super.getContentPane().add(panelCenter); // COMBOBOX omesso // JButton omessi // JTextField omessi //JLabel omessi button1.addActionListener(event -> { String uno = (String) listaProdotti2.getSelectedItem(); if(!(uno.equalsIgnoreCase(""))) { prodUno.setText(uno); String prezzoUno = "Tot da pagare € "; uno = quant.getText(); totProdUno.setText("QUI DOVREI INVOCARE IL METODO totale() DELLA CLASSE PRODOTTI"); } });
grazie
La classe prodotti la devi instanziare nel tua lambda o ti devi riferire ad un proprietà fuori dalla lambda ?
E soprattutto il metodo totale restituisce una Stringa ?
il metodo totale restituisce un float perché io da questo devo calcolare il prezzo da pagare. la classe prodotti la devo i stanziare nella mia lambda.
codice:button1.addActionListener(event->{ Stringuno=(String)listaProdotti2.getSelectedItem(); if(!(uno.equalsIgnoreCase(""))){ prodUno.setText(uno); String prezzoUno = "Tot da pagare € "; uno=quant.getText(); float totale = new Prodotti().totale(); //SUPPONGO CHE LA CLASSE PRODOTTI ABBIA IL COSTRUTTORE DI DEFAULT //EVENTUALMENTE PUOI USARE UN NumberFormat per formattare il float totProdUno.setText(""+totale); }
mi fa un calcolo insolito perché comunque devo rivedere bene il metodo.. comunque grazie.. per il momento ok così...
poi cerco di sbatterci bene la testa..se eventualmente ho ancora problemi settimana prox vi ricontatto![]()
allora ritorno sul problema...
prima di tutto Uno è di tipo stringa quindi ci vuole un cast. poi dovrei fare in modo checodice:button1.addActionListener(event -> { String uno = (String) listaProdotti2.getSelectedItem(); if(!(uno.equalsIgnoreCase(""))) { prodUno.setText(uno); String prezzoUno = "Tot da pagare € "; float totale = new Prodotti().totale(); Uno = quant.getText(); totProdUno.setText(prezzoUno + Uno + totale); // così non può andare bene } });
totProdUno.setText() mi faccia (prezzoUno + (Uno*totale)) in quanto devo moltiplicare la quantità inserita per totale per farmi restituire il prezzo...
ho provato a fare il cast ma non mi riesce...