|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 144
|
[JAVA] Lista di stringhe in una ScrollPane
Ciao a tutti
Ah, e inoltre, una volta creato l'intero codice e tutte le classi, come faccio a rendere il package eseguibile, come fosse un normale applicativo? Ultima modifica di Attila7894 : 31-08-2009 alle 03:02. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Per l'eseguibile se usi Netbeans trovi un file .jar eseguibile nella cartella "dist" dopo un build o un clean and build o un salvataggio. Per eclipse c'è una funzione "export" da qualche parte che crea il jar exeguibile.
Per la lista di stringhe se vuoi usare un componente per ogni stringa (ad esempio una serie di JLabel) puoi usare una Box: Codice:
Box box = Box.createVerticalBox();
JScrollPane scroller = new JScrollPane(box);
scroller.setVerticalScrollbarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
scroller.setHorizontalScrollbarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
box.add(new JLabel("stringa 1"));
box.add(new JLabel("stringa 2"));
box.add(new JLabel("eccetera"));
//all'interfaccia aggiungi "scroller" che contiene box
Puoi usare una JList che è praticamente la stessa cosa del box con le etichette: Codice:
DefaultListModel model = new DefaultListModel();
JList lista = new JList(model);
JScrollPane scroller = new JScrollPane(box);
scroller.setVerticalScrollbarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
scroller.setHorizontalScrollbarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
model.addElement("Stringa 1");
model.addElement("Stringa 2");
model.addElement("eccetera");
//all'interfaccia aggiungi scroller che contiene lista
Codice:
JTextArea area = new JTextArea();
area.setEditable(false);
JScrollPane scroller = new JScrollPane(box);
scroller.setVerticalScrollbarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
scroller.setHorizontalScrollbarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
area.append("Stringa 1");
area.append("\n" + "Stringa 2");
area.append("\n" + "eccetera");
Con l'area di testo tuttavia perdi la possibilità di decorare visivamente le singole stringhe salva l'applicazione di un particolare font per tutte. A te la scelta. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 144
|
Grazie mille per la risposta. Ho utilizzato la prima soluzione, però non riesco a risolvere un problema. In questo box io devo aggiungere o rimuovere JLabel secondo la pressione di due tasti. Quando aggiungo una JLabel tutto ok, ma quanto ne rimuovo una la grafica non viene aggiornata. Ho provato a richiamare validate() ma nulla. Quale metodo devo richiamare e di quale componente?
Grazie per l'attenzione |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ci vogliono Gasparre, Melchiorre e Baldassarre:
box.remove(x); box.revalidate(); box.repaint(); Il primo rimuove, il secondo rigenera e il terzo da un ridisegnata "tanto per andare sul sicuro" Documentazione alla mano dovrebbe bastare Gasparre ma la javadoc a volte racconta certe panzane...
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:16.


















