Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14

    java : ascoltatori in classi separate

    Buongiorno a tutti. Sono nuovo del forum pertanto chiedo anticipatamente scusa se commetterò qualche errore inserendo domande in discussioni non pertinenti. premettendo che non è da molto tempo che scrivo programmini in java vengo al punto. Mi sto divertendo a imparare il linguaggio java e, per esercitarmi ho scritto un programma per fare una calcolatrice tutta in una unica classe con gli ascoltatori in classi interne e la calcolatrice funziona abbastanza bene. Ha quattro campi di testo jtext per l'inserimento dei dati, quattro label jlabel per la descrizione e diversi bottoni jbutton per le varie operazioni. Il tutto è venuto troppo lungo per i miei gusti e per questo l'ho modificato. Il main in una classe (un file), il jframe in un'altra classe (un altro file) e gli ascoltatori dei primi due bottoni in due classi separate (altri due files diversi). Sta di fatto ora che il primo bottone funziona bene mentre il secondo fa la stessa cosa che fa il primo e non dovrebbe essere così. E' come se Il secondo bottone invece di chiamare il proprio listener, chiamasse quello del primo. Non riesco a spiegarmi questo comportamento. Vorrei cortesemente che avere una mano d'aiuto suquesta cosa che proprio non riesco a capire. Ho cercato sui libri che ho comprato e sul forum ma non sono riuscito a trovare la soluzione. Ringrazio per la cortese attenzione

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Senza vedere il codice del listener, dei pulsanti e di come metti il listener ai pulsanti non ti si può dire molto...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14
    PRIMO FILE CHIAMATO calc.java
    codice:
    public class calc {
    public static void main(String[] args) { 
    	FrCalc FrCalcA = new FrCalc();
    	FrCalcA.setVisible(true);
    	}
    }
    SECONDO FILE CHIAMATO FrCalc.java
    codice:
    import java.awt.*;
    import java.awt.event.*; 
    import javax.swing.*;
    public class FrCalc extends JFrame{ 
    	JLabel lab1 = new JLabel("Operando 1");
    	JTextField numero1 =new JTextField();
    	JLabel lab2 = new JLabel("Operando 2");
    	JTextField numero2 =new JTextField();
    	JLabel lab3 = new JLabel("Primo Risultato");
    	JTextField ris1 =new JTextField();
    	JLabel lab4 = new JLabel("Secondo Risultato");
    	JTextField ris2 =new JTextField();
    	AscPuls1 rFrCalc1 = new AscPuls1(this);
    	AscPuls2 rFrCalc2 = new AscPuls2(this);
    	public FrCalc() { 
    		Container FrCont=getContentPane();
    		FrCont.setLayout(null);
    		JButton b1 = new JButton("Pulsante1"), b2 = new JButton("Pulsante2"); 
    		FrCont.add(b1); FrCont.add(b2);
    		b1.setSize(120,30); b1.setLocation(20,320);
    		b2.setSize(120,30); b2.setLocation(150,320);
    		b1.addActionListener(rFrCalc1); 
    		b2.addActionListener(rFrCalc2);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		/*addWindowListener( new WindowAdapter() {
    			public void windowClosing(WindowEvent e){ 
    					System.out.println("Window Closing"); 
    					System.exit(0); 
    					} 
    		}); */
    		setTitle("NUOVA CALCOLATRICE");
    		setSize(650,400);
    		setResizable(false);  
    		setLocation(50,100);
    		FrCont.add(lab1);
    		lab1.setSize(120,15);
    		lab1.setLocation(0,0);
    		FrCont.add(numero1);
    		numero1.setSize(250,20);
    		numero1.setLocation(0,30);
    		FrCont.add(lab2);
    		lab2.setSize(120,15);
    		lab2.setLocation(300,0);
    		FrCont.add(numero2);
    		numero2.setSize(250,20);
    		numero2.setLocation(300,30);
    		FrCont.add(lab3);
    		lab3.setSize(120,15);
    		lab3.setLocation(0,100);
    		FrCont.add(ris1);
    		ris1.setSize(250,20);
    		ris1.setLocation(0,120);
    		FrCont.add(lab4);
    		lab4.setSize(120,15);
    		lab4.setLocation(300,100);
    		FrCont.add(ris2);
    		ris2.setSize(250,20);
    		ris2.setLocation(300,120);
    		
    	}
    }
    TERZO FILE CHIAMATO AscPuls1.java
    codice:
    import java.awt.event.*; 
    public class AscPuls1 implements ActionListener { 
    	FrCalc RifFrCalc;
    	public AscPuls1(FrCalc PRifFrCalc)
    		{RifFrCalc = PRifFrCalc;}
    	public void actionPerformed(ActionEvent e){ 
    		String s1 = RifFrCalc.numero1.getText();
    		String s2 = RifFrCalc.numero2.getText();
    		System.out.println("Premuto Pulsante1    " + s1 + "   " + s2); 
    		} 
    }
    QUARTO FILE CHIAMATO AscPuls2.java
    codice:
    import java.awt.event.*; 
    public class AscPuls2 implements ActionListener{
    	FrCalc RifFrCalc;
    	public AscPuls2(FrCalc PRifFrCalc)
    		{RifFrCalc = PRifFrCalc;}
    	public void actionPerformed(ActionEvent e) {
    		System.out.println("Premuto Pulsante2"); 
    		} 
    }
    Ringrazio per l'attenzione. ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14
    Molte grazie alex

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Puoi inglobare il codice nel tag CODE? Altrimenti è illeggibile...

    [ CODE ]

    codice

    [ /CODE ]

    (senza spazi)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14
    Per favore mi spieghi come fare? grazie.

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da carmar
    Per favore mi spieghi come fare? grazie.
    In realtà te l'ho già scritto..
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ho sistemato il post, aggiungendo i tag CODE, come richiesto dal Regolamento interno.

    Come si usano i tag CODE.
    Quando si deve postare del codice, prima di incollare il codice si apre il tag, scrivendo questo:

    [CODE]

    poi si incolla il codice e alla fine si chiude il tag in questo modo

    [/CODE].

    Esempio:

    [CODE]
    posto del codice
    [/CODE]

    Risultato:

    codice:
    posto del codice

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14
    import java.awt.event.*;
    public class AscPuls2 implements ActionListener{
    FrCalc RifFrCalc;
    public AscPuls2(FrCalc PRifFrCalc)
    {RifFrCalc = PRifFrCalc;}
    public void actionPerformed(ActionEvent e) {
    System.out.println("Premuto Pulsante2");
    }
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    14
    Ho capito come si fa. Molte grazie per averlo fatto al posto mio.

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.