webForumDet fria alternativet

swing + scrollpane

2 svar · 178 visningar · startad av turbofreddan

turbofreddanMedlem sedan apr. 2003115 inlägg
#1

hej

jag har en Scrollpane som jag addar till min frame. Allt ser jättebra ut man kan klicka på varje element i listan mm. Men när man väljer att ta bort någon får jag inte scrollpanen att uppdatera... Hur fan gör man det? Mvh fredrik

mo:d:fiMedlem sedan jan. 200475 inlägg
#2

Kör du en lista i scrollpane'n eller hur menar du att du använder scrollpane'n.
om du har en lista e det väl enklast att använda list komponenten.

jmeMedlem sedan maj 20012 237 inlägg
#3

När du själv tar bort/lägger till komponenter under programmets körning så måste du uppdatera innehållet själv.

Kika på API doc:en under klassen Component. Den har bl a metoden repaint() och validate. Båda kan du använda för att manuellt uppdatera en komponent vars innehåll har förändrats,

Du har en JScrollPane med innehåll. Du har inte lagt fram nån kod men jag antar följande:

JScrollPane pane;
JPanel panel;
JButton btn;

panel.add(btn);
pane.add(panel);

Om du t ex vill ta bort knappen (btn):

panel.remove(btn); // nu tas knappen bort, men den syns fortfarande
panel.repaint(); // nu ritas innehållet på nytt och knappen syns inte längre

metoden repaint ärvs således från klassen Component (om jag minns rätt).

Jag har märkt att ibland räcker inte enbart repaint(), utan man måste köra metoden validate() också.

Testa dig fram och berätta hur det går. :)

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)