PDA

View Full Version : [Java] Passare le classi


max246
04-06-2007, 08:51
Ho un problema, devo fare un demone che controlla dei file che contiene una interfaccia grafica che viene creata solo se si entra nella configurazione.
Per monitorare i file, configurare le cose , ecc... uso delle classi come contenitori di dati, io so che se passi la classe già creata a metodo dovrebbe modificare quella attuale e non fare una copia dell'oggetto.

Ora mi chiedo se io creo la mia grafica ( new GUI(Oggetto o , Oggetto o1,...) ), dovrebbe modificarmi la classe creata nel main e non farmi la copia giusto? Ma questo non accade :S

andbin
04-06-2007, 09:35
Ho un problema, devo fare un demone che controlla dei file che contiene una interfaccia grafica che viene creata solo se si entra nella configurazione.
Per monitorare i file, configurare le cose , ecc... uso delle classi come contenitori di dati, io so che se passi la classe già creata a metodo dovrebbe modificare quella attuale e non fare una copia dell'oggetto.

Ora mi chiedo se io creo la mia grafica ( new GUI(Oggetto o , Oggetto o1,...) ), dovrebbe modificarmi la classe creata nel main e non farmi la copia giusto? Ma questo non accade :SPurtroppo non è chiaro (a me) cosa devi fare di preciso.
Parlando in generale, se passi il reference di un oggetto ad un metodo, quest'ultimo è in grado di alterare lo stato dell'oggetto solo se nell'oggetto ci sono dei metodi che permettono di alterarlo (setter, ecc...).

max246
04-06-2007, 09:45
Scusa per la confusione...
Allora ho la mia classe main e la classe GUI ( creata con il tool di netbeans ) , io voglio tenere nel main una classe chiamata CONFIGURAZIONE che contiene alcuni dati e passare questa alla GUI, così da modificare i dati graficamente.

Se io passo la classe new GUI(Configurazione c ), dovrebbe alterare l'oggetto in main o fa una copia?

max246
04-06-2007, 09:54
Un'altra domanda, nel mio main ho definito un arraylist e un oggetto.
Come passo a un metodo statico questi due parametri?

andbin
04-06-2007, 09:57
Scusa per la confusione...
Allora ho la mia classe main e la classe GUI ( creata con il tool di netbeans ) , io voglio tenere nel main una classe chiamata CONFIGURAZIONE che contiene alcuni dati e passare questa alla GUI, così da modificare i dati graficamente.

Se io passo la classe new GUI(Configurazione c ), dovrebbe alterare l'oggetto in main o fa una copia?Quello che tu passi è un reference e basta, non una copia dell'oggetto.
Quindi bisogna vedere come è fatta la classe Configurazione e cosa ci devi fare con quel reference passato a GUI.

Scusa se sono un po' generico, ma ovviamente non posso sapere esattamente cosa stai facendo di preciso.

max246
04-06-2007, 10:18
Questo è il codice nel main

PopupMenu p = new PopupMenu();
MenuItem menuItem = new MenuItem("Configura");
menuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
AzioneConfigura(d,conf);
}
});
p.add(menuItem);
MenuItem menuItem2 = new MenuItem("Esci");
menuItem2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
AzioniMenu(2);
}
});
p.add(menuItem2);
TrayIcon traybar = new TrayIcon(Toolkit.getDefaultToolkit().createImage(Main.class.getResource("add.GIF")), "ciao", p);
try {
SystemTray.getSystemTray().add(traybar);
} catch (AWTException e) {
e.printStackTrace();
}

poi il metodo per avviare la GUI

public static void AzioneConfigura(ArrayList d,Configurazione conf) {
GUI g = new GUI(d,GetConfigura());
g.setVisible(true);
}

solamente che io ho la dichiarazione delle variabili qua:

public class Main {
public ArrayList d = new ArrayList();
public Configurazione conf = new Configurazione("","","");
Percio nel metodo static main non mi lascia prendere e passarli alla GUI

come posso ovviare a questo problema?