|
| "Klikbar" liste med Strings... Fra : Jonas Christensen |
Dato : 22-01-02 13:01 |
|
Hej!
Jeg er relativt ny indenfor Java-programmering, og jeg er kommet til at
sidde lidt fast i et lille program, jeg er ved at lave.
Jeg har brug for at lave en liste, der består af en række Strings fra et
array - der skal altså kunne tilføjes og fjernes elementer fra listen. Hver
af disse strings skal så være tilknyttet én eller anden form for
ActionListener, således at når der klikkes på én af dem, skal indholdet i et
JTextArea ændre sig...
Især det første har jeg problemer med. Hvilken form for liste skal jeg bruge
til dette?? Jeg har rodet lidt med både JTable, JList og JTextArea, og jeg
kan sagtens få data sat ind. Jeg kan bare ikke finde ud af at tilføje
muligheden for at aktivere en metode ved at trykke på et element i listen.
Hvad gør jeg??
- Jonas
| |
Lars Dam (22-01-2002)
| Kommentar Fra : Lars Dam |
Dato : 22-01-02 13:22 |
|
On Tue, 22 Jan 2002 13:00:47 +0100, "Jonas Christensen" <admin@zaf.dk>
wrote:
>Hej!
>
>Jeg er relativt ny indenfor Java-programmering, og jeg er kommet til at
>sidde lidt fast i et lille program, jeg er ved at lave.
>
>Jeg har brug for at lave en liste, der består af en række Strings fra et
>array - der skal altså kunne tilføjes og fjernes elementer fra listen. Hver
>af disse strings skal så være tilknyttet én eller anden form for
>ActionListener, således at når der klikkes på én af dem, skal indholdet i et
>JTextArea ændre sig...
>Især det første har jeg problemer med. Hvilken form for liste skal jeg bruge
>til dette?? Jeg har rodet lidt med både JTable, JList og JTextArea, og jeg
>kan sagtens få data sat ind. Jeg kan bare ikke finde ud af at tilføje
>muligheden for at aktivere en metode ved at trykke på et element i listen.
>
>Hvad gør jeg??
Det kan gøres på mange måder; meen een af mine favoritter er at lave
en inner class der indeholder det data object der repræsenteres, og
overstyre toString() så den returnere den korrekte streng i listen;
eks.:
class ListData{
Person p = null;
public ListData( Person p ){
this.p = p;
}
public String toString(){
// denne metode giver den streng
// der bruges i JList
return p.getFirstName()+" "+p.getLastName();
}
}
Vector v = new Vector();
v.add( new ListData( new Person(...) ) );
v.add( new ListData( new Person(...) ) );
v.add( new ListData( new Person(...) ) );
v.add( new ListData( new Person(...) ) );
jlist.setListData(v);
Når der så klikkes på listen, så lav en 'getSelectedItem()', denne er
en ListData type, og fra ListData, kan du tage 'p', og data derfra kan
du præsentere som du har lyst (i et text area f.eks.).
>- Jonas
>
vh. ld
---
"Time is the fire in which we burn"
| |
Jonas Christensen (22-01-2002)
| Kommentar Fra : Jonas Christensen |
Dato : 22-01-02 14:22 |
|
> Det kan gøres på mange måder; meen een af mine favoritter er at lave
> en inner class der indeholder det data object der repræsenteres, og
> overstyre toString() så den returnere den korrekte streng i listen;
Mange tak for det hurtige svar... Kombineret med
http://java.sun.com/docs/books/tutorial/uiswing/components/list.html gav det
lige hvad jeg manglede.
- Jonas
| |
|
|