G
Gast
Gast
Hallo,
ich versuche es mal ganz simpel zu Erklären was bei mir abläuft:
Also ich habe ein JScrollPane in welcher sich eine Reihe von JLabels liegen.
Auf diesen JLabels sind wiederrum bestimmte SVGIcons.
Nun zu meinen Problem. Das laden dieser JScrollPane mit den Label(mit SVgIcons)
funktioniert auch wunderbar. Aber wenn ich jetzt z.B. 20 Stück lade (20 SVGS), könnt
ihr euch vorstellen wir der Rechner in die Knie geht. Und 20 ist nur der Anfang, es sollen
auch mal 400 geladen werden.
Gibt es eine Möglichkeit z.B. erst soviele Bilder zu laden wie in die derzeitig sichtbare scrollpane
passen, dann im Hintergrund die Bilder quasi nach zu laden, damit sie später zur Verfügung stehen?
???:L
Hier mal nen Ausschnitt aus der LabelKlasse:
ich versuche es mal ganz simpel zu Erklären was bei mir abläuft:
Also ich habe ein JScrollPane in welcher sich eine Reihe von JLabels liegen.
Auf diesen JLabels sind wiederrum bestimmte SVGIcons.
Nun zu meinen Problem. Das laden dieser JScrollPane mit den Label(mit SVgIcons)
funktioniert auch wunderbar. Aber wenn ich jetzt z.B. 20 Stück lade (20 SVGS), könnt
ihr euch vorstellen wir der Rechner in die Knie geht. Und 20 ist nur der Anfang, es sollen
auch mal 400 geladen werden.
Gibt es eine Möglichkeit z.B. erst soviele Bilder zu laden wie in die derzeitig sichtbare scrollpane
passen, dann im Hintergrund die Bilder quasi nach zu laden, damit sie später zur Verfügung stehen?
???:L
Hier mal nen Ausschnitt aus der LabelKlasse:
Code:
public class MYLabel extends JLabel implements Transferable{
public final DataFlavor jLabelFlavor = new DataFlavor(JLabel.class, "Swing JLabel");
private static final long serialVersionUID = 1L;
private String icon;
public MYLabel(final String iconL, String path)
{
super();
if (iconL.toLowerCase().endsWith(".svg"))
{
this.icon = path + "\\" + iconL;
try
{
URL tmpURL = new URL("file:/" + this.icon);
SVGIcon svgIcon = new MySVGIcon(tmpURL);
this.setIcon(svgIcon);
this.setPreferredSize(new Dimension(80, 80));
}
catch (MalformedURLException e1)
{
e1.printStackTrace();
}
// this.setIcon(new ImageIcon(this.icon));
this.setBorder(new TitledBorder(this.icon.substring(this.icon.lastIndexOf("\\"), this.icon.length())));
this.setTransferHandler(new TransferHandler("text"));
this.setSize(50, 50);
this.setMinimumSize(new Dimension(50, 50));
this.setMaximumSize(new Dimension(50, 50));
}
}