Newsgroup: it.comp.java
Titolo: passaggio di parametri

Qualcuno mi spiega esattamente il passaggio di un oggetto come avviene in
Java?
L'oggetto viene passato per copia o c'č un suo riferimento? Se modifico
parti interne di un oggetto in un metodo di una classe dopo che glil'ho
passato al ritorno avrņ l'oggetto modificato?
Sto lavorando con una JList ed un DefaultListModel e mi sono accorto che non
funziona se creo la DefaultListModel in una classe e la JList in un'altra e
poi gli passo la DefaultListModel... perchč???
MaX

Ho dei dubbi riguardo la creazione di una lista,
io devo creare una JList in cui all'interno possono cambiare di volta in
volta gli elementi anche quando la JList è già stata creata, come si fa? Ho
provato a fare cose di questo tipo
listModel = new DefaultListModel();
listModel.addElement("Alison Huml");
listModel.addElement("Kathy Walrath");
listModel.addElement("Lisa Friendly");
listModel.addElement("Mary Campione");
list = new JList(listModel);
ma se non metto nessun elemento nella lista quando creo laJList poi lui non
si accorge che cambia.
Cosa sbaglio? come faccio a dire alla classe JList che è cambiata la
listmodel?
Grazie MaX

 Java?
 > L'oggetto viene passato per copia o c'è un suo riferimento?
In Java non si passano gli oggetti ma i loro riferimenti.
I riferimenti vengono passati per valore.
 >Se modifico
 >parti interne di un oggetto in un metodo di una classe dopo che glil'ho
 >passato al ritorno avrò l'oggetto modificato?
Si'.
- Dario

 listmodel?
non ti funziona cosě?
------------------------
//<APPLET code="DemoList" width="400" height="400"></APPLET>
import javax.swing.*;
public class DemoList extends JApplet
{
 private DefaultListModel listmodel;
 private JList list;
 public void init()
 {
  listmodel = new DefaultListModel();
  list = new JList(listmodel);
  listmodel.addElement("Alison Huml");
  listmodel.addElement("Kathy Walrath");
  listmodel.addElement("Lisa Friendly");
  listmodel.addElement("Mary Campione");
  getContentPane().add(list);
 }
}
-------------------
ciao)o
Andrea
http://jame.sf.net

Ma poi durante il programma non posso cambiare la lista, aggiuingere
elementi etc?????
E' dopo che non mi funziona! Quando vado ad agiungere gli elementi me ne
aggiunge circa una decina...e poi scompare tutto
MaX

 ha scritto nel messaggio
news:ba0c3t$89m$1...@news.flashnet.it...

posta il tuo codice, penso che i problemi siano altrove
ciao)o
Andrea
http://jame.sf.net

Ecco come ho risolto, però non capisco come fare in altro modo. Praticamente
non devo passargli quando crea la finestra una lista vuota se no poi si
impalla tutto quando la lista supera gli elementi che può visualizzare e
crea la barra di scorrimento.
C'è un'altro modo di fare questa cosa?
public SceltaGUI(JFrame owner)
{
super(owner,"Scelta GUI ",true);
listmodel = new DefaultListModel();
//listmodel.addElement("MAX djiwejdiowejdjweidjiowejio");
for(int i=1;i<30;i++) listmodel.addElement("create window with scrollbar");
list=new JList(listmodel);
list.setVisibleRowCount(10);
activate();
//waitOK();
listmodel.clear();
}

> listmodel.clear();
cos'è questa roba?
certo che ti scompaiono, li rimuovi!!!
ciao)o
Andrea
p.s.
scusa il ritardo con cui ti rispondo

 cos'č questa roba?


 della tabella pur inserendovi i dati.
non credo tu stia seguendo la retta via ;)
//<APPLET code="DemoList" width="400" height="400"></APPLET>
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DemoList extends JApplet implements MouseListener
{
 private DefaultListModel listmodel;
 private JList list;
 public void init()
 {
  listmodel = new DefaultListModel();
  list = new JList(listmodel);
  getContentPane().add(list);
  list.addMouseListener(this);
 }
 public void mouseEntered(MouseEvent e)
 {
 }
 public void mouseExited(MouseEvent e)
 {
 }
 public void mouseClicked(MouseEvent e)
 {
  listmodel.addElement("Alison Huml");
  listmodel.addElement("Kathy Walrath");
  listmodel.addElement("Lisa Friendly");
  listmodel.addElement("Mary Campione");
 }
 public void mousePressed(MouseEvent e)
 {
 }
 public void mouseReleased(MouseEvent e)
 {
 }
}
ciao)o
Andrea
http://jame.sf.net

E come faccio a fare in modo che la jlist venga aggiornata? Che venga
riaggiornato anche la sua allocazione all'interno del jframe?
MaX

 riaggiornato anche la sua allocazione all'interno del jframe?
credo di aver capito adesso qual'č il tuo problema ;)
questo č quanto di meglio posso suggerirti
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DemoList extends JFrame implements MouseListener
{
 private DefaultListModel listmodel;
 private JScrollPane scrollpane;
 private JList list;
 public DemoList()
 {
  listmodel = new DefaultListModel();
  list = new JList(listmodel);
  listmodel.addElement("Andrea Medeghini");
  list.setPreferredSize(new Dimension(600,200));
  scrollpane = new
JScrollPane(list,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTA
L_SCROLLBAR_AS_NEEDED);
  list.setFixedCellHeight(20);
  getContentPane().setLayout(new BorderLayout());
  getContentPane().add(scrollpane,BorderLayout.CENTER);
  pack();
  show();
  list.addMouseListener(this);
  addWindowListener(new windowAdapter());
 }
 public static void main(String[] args)
 {
  new DemoList();
 }
 public void mouseEntered(MouseEvent e)
 {
 }
 public void mouseExited(MouseEvent e)
 {
 }
 public void mouseClicked(MouseEvent e)
 {
  listmodel.addElement("Alison Huml");
  listmodel.addElement("Kathy Walrath");
  listmodel.addElement("Lisa Friendly");
  listmodel.addElement("Mary Campione");
  list.setPreferredSize(new
Dimension(600,list.getFixedCellHeight()*listmodel.size()));
  pack();
 }
 public void mousePressed(MouseEvent e)
 {
 }
 public void mouseReleased(MouseEvent e)
 {
 }
 private class windowAdapter extends WindowAdapter
 {
  public windowAdapter()
  {
  }
  public void windowClosing(WindowEvent e)
  {
   System.exit(0);
  }
 }
ciao)o
Andrea
http://jame.sf.net