PDA

View Full Version : Problema GUI con Java


Raposa
28-01-2015, 16:42
Salve ragazzi suono nuovo, ho bisogno di aiuto per un progetto, sto utilizzando Eclipse con il plugin per GUI Window Builder.
Ho creato due finestre (Finestra 1 e finestra 2), nella finestra 1 ci sono sei campi textfield e un pulsante, quando si clicca il pulsante si apre la finestra 2 e si chiude la finestra 1, e qui tutto ok...

questo è l'evento

JButton btnNewButton = new JButton("Calcola Reddito");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Irpef window = new Irpef();
window.frame.setVisible(true);
frame.dispose();
}
});


Il problema sta che io voglio fare mostrare il risultato della somma dei 6 campi della finestra 1 nella textfield che ho disegnato nella finestra 2, come c***o faccio?
Vi prego è urgente, grazie in anticipo per il vostro aiuto

sottovento
29-01-2015, 04:13
JButton btnNewButton = new JButton("Calcola Reddito");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Irpef window = new Irpef();
// Qui hai creato la finestra. Prima di renderla visibile, potresti
// utilizzare dei metodi pubblici di window che ti dovrai creare
// e che ti permetteranno di settare il risultato
window.frame.setVisible(true);
frame.dispose();
}
});

Raposa
29-01-2015, 11:44
Ci sono dei metodi window che mi fanno stampare il risultato di un metodo che ho implementato io, in questo caso calcolareddito() implementato nella finestra 1, stampare il risultato nella finestra 2?
è una cosa difficile da fare?

sottovento
29-01-2015, 14:38
Ci sono dei metodi window che mi fanno stampare il risultato di un metodo che ho implementato io, in questo caso calcolareddito() implementato nella finestra 1, stampare il risultato nella finestra 2?
è una cosa difficile da fare?

No, assolutamente, si tratta di poche linee di codice. Prendi da una parte e scrivi dall'altra...

Raposa
29-01-2015, 14:50
Scusa ma non mi è ancora molto chiaro...
Io ho l'interfaccia HOME associata con la sua classe REDDITO
poi ho l'interfaccia IRPEF associata con la sua classe REDDITOTOTALE
nella classe REDDITO io ho implementato un metodo che somma i 6 valori inseriti nell'interfaccia HOME, premendo il pulsante nella HOME apro l'interfaccia IRPEF e voglio che il risultato salti fuori lì nel campo textField nell'interfaccia IRPEF... Dove devo scrivere il codice? sia sull'evento quando premo il tasto nell'interfaccia HOME e anche nel campo del textField dell'interfaccia IRPEF? Mi puoi suggerire il codice da utilizzare? è da giorni che cerco online ma non riesco a trovare niente
GRAZIEEE

Amsirak
29-01-2015, 23:16
non ho capito bene la struttura dell'applicazione e non conosco la gui di java, ma hai diversi modi.

Se la finestra 2, come mi pare di capire, è un'istanza di una classe diversa da quella in cui ti trovi quando la lanci (cioè sei in Home e la finestra che crei fa parte di un istanza di Irpef), puoi:

1. creare una variabile del tipo public static double redditoTotale nella classe Home, e recuperarla chiamando Home.redditoTotale

2. passare una variabile del tipo double redditoTotale (public o private) al costruttore della classe Irpef . Quindi la classe Irpef deve avere un campo dello stesso tipo, in cui salvare il valore in ingresso. in questo caso chiameresti Irpef window = new Irpef(this.redditoTotale);

p.s. le ragioni dell'una e dell'altra scelta dipendono da cosa devono fare le varie classi, la prima va bene se avrai sempre solo un'istanza di Home e Irpef, la seconda se puoi avere diverse istanze

fally
30-01-2015, 11:34
le classi di interfaccia grafica non dovrebbero contenere la logica. Cerca di strutturare meglio il tuo progetto : crea una main class che gestisce il flusso di dati e variabili e decide cosa aprire e quando. Fatto questo il problema nemmeno sussiterà...

Raposa
30-01-2015, 14:28
Grazie mille ragazzi siete stati molto gentili e sono riuscito a risolvere il mio problema.
Grazie ancora