|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
|
[Java] sono ignorante
allora ragazzi...
ho un agente software ho un'interfaccia grafica costruita a parte questo agente deve fare delle azioni, tipo aggiornare un catalogo, da interfaccia grafica. Ma come glielo dico che col pulsante, i dati immessi nei textField sono da memorizzare nel catalogo? allora, nel mio agente ho la funzione: Codice:
// aggiorna il catalogo:
public void updateCatalogue(final String nomeProdotto, ProdottoC p) {
addBehaviour(new OneShotBehaviour() {
public void action() {
ProdottoC p = new ProdottoC();
MieiProdotti.put(nomeProdotto, p);
System.out.println(nomeProdotto + " inserito nel catalogo.");
}
});
}
Codice:
private Hashtable<String, ProdottoC> MieiProdotti; finora ho stressato tigershark.... ma siccome poerello mi sa che l'ho collassato... bè vi sarei grata di cuore se mi spiegaste, come si fa ai bimbi piccoli, come devo fare.... p.s.: l'esame è domani....hi h ih i |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
|
ragazzi ci riprovo....
allora andiamo per passi: ho due classi una delle due è una gui, fatta a parte con netbeans... come le faccio comunicare? cioè, come dico alla gui che deve far parte dell'altra classe? mi sa che nn mi ritrovo nel costruttore.... nella GUI: Codice:
public class GUICliente extends javax.swing.JFrame {
/** Creates new form GUICliente */
public GUICliente() {
initComponents();
}
Codice:
....
private GUICliente myGui;
...
protected void setup() {
myGui = new GUICliente();
myGui.show();
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
E qual'è il problema? myGUI.setup() chiama il costruttore della GUI, che a sua volta esegue l'initComponents() per inizializzare (suppongo, non c'è il codice) i componenti ed il layout della GUI. Quindi con myGUI.show() la dovresti vedere a schermo. La GUI NON fa parte dell'altra classe, ma viene semplicemente richiamata da essa.
__________________
Il sole è giallo |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Codice:
private GUICliente myGui;
...
protected void setup() {
myGui = new GUICliente();
myGui.pack();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
myGui.setVisible(true);
}
});
![]() e io qua non ho eclipse
__________________
|
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
|
si ok...
ma io dalla gui devo richiamare dei metodi facenti parte dell'altra classe... in pratica nn ho la più pallida idea di come richiamare tali metodi coi listener! perdona il gergo da principiante |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
passi "this" al costruttore di GUICliente
__________________
|Java Base| |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Codice:
public class GUICliente extends javax.swing.JFrame {
private MyAgent agent;
/** Creates new form GUICliente */
public GUICliente(MyAgent agent) {
this.agent = agent;
initComponents();
}
Codice:
private GUICliente myGui;
...
protected void setup() {
myGui = new GUICliente(this);
myGui.pack();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
myGui.setVisible(true);
}
});
__________________
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Un modo (anche se poco ortodosso a mio modo di vedere, secondo me ci sarebbe da rivedere un po' la progettazione delle classi) di risolvere il tuo problema è di passare la seconda classe come parametro del costruttore della GUI.
Ovvero, il costruttore della GUI diventa Codice:
classeGUI
{
secondaClasse sc;
CostruttoreGUI (secondaClasse sc)
{
this.sc = sc
Codice:
myGui = new GUICliente(this); In questo modo, puoi richiamare dall'interno della GUI i metodi di secondaClasse sul membro sc. Anche se, ripeto, credo sia più ovvio avere una classe che fa da controller e richiama i metodi della GUI piuttosto che l'inverso, ma non conosco i dettagli della tua applicazione
__________________
Il sole è giallo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:39.













|








