jlists don't offer method this, , that's sad. know how it?
fixed position list (ie image fixed, can scroll list)...
import java.awt.borderlayout; import java.awt.color; import java.awt.dimension; import java.awt.eventqueue; import java.awt.graphics; import java.awt.graphics2d; import java.awt.image.bufferedimage; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; import javax.swing.jframe; import javax.swing.jlist; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class backgroundlist { public static void main(string[] args) { new backgroundlist(); } public backgroundlist() { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { } jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new borderlayout()); frame.add(new testpane()); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } public class testpane extends jpanel { private jlist list; private bufferedimage background; public testpane() { setlayout(new borderlayout()); try { background = imageio.read(new file("c:\\users\\shane\\dropbox\\megatokyo\\_cg_836___tilting_windmills___by_serena_clearwater.png")); } catch (ioexception ex) { ex.printstacktrace(); } int count = 50; string[] values = new string[count]; (int index = 0; index < count; index++) { values[index] = "testing " + (index + 1); } list = new jlist(values); list.setopaque(false); list.setbackground(new color(0, 0, 0, 0)); list.setforeground(color.white); jscrollpane scrollpane = new jscrollpane(list); scrollpane.setopaque(false); scrollpane.getviewport().setopaque(false); add(scrollpane); } @override public dimension getpreferredsize() { return new dimension(200, 200); } @override protected void paintcomponent(graphics g) { super.paintcomponent(g); if (background != null) { graphics2d g2d = (graphics2d) g.create(); int x = getwidth() - background.getwidth(); int y = getheight() - background.getheight(); g2d.drawimage(background, x, y, this); g2d.dispose(); } } } }
scrollable background...
bascially, image "scroll" list....
import java.awt.borderlayout; import java.awt.color; import java.awt.dimension; import java.awt.eventqueue; import java.awt.graphics; import java.awt.graphics2d; import java.awt.image.bufferedimage; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; import javax.swing.jframe; import javax.swing.jlist; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class backgroundlist { public static void main(string[] args) { new backgroundlist(); } public backgroundlist() { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { } jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new borderlayout()); frame.add(new testpane()); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); } }); } public class testpane extends jpanel { private jlist list; private bufferedimage background; public testpane() { setlayout(new borderlayout()); try { background = imageio.read(new file("c:\\users\\shane\\dropbox\\megatokyo\\_cg_836___tilting_windmills___by_serena_clearwater.png")); } catch (ioexception ex) { ex.printstacktrace(); } int count = 50; string[] values = new string[count]; (int index = 0; index < count; index++) { values[index] = "testing " + (index + 1); } list = new backgroundimagelist(values); jscrollpane scrollpane = new jscrollpane(list); scrollpane.setopaque(false); scrollpane.getviewport().setopaque(false); add(scrollpane); } } public class backgroundimagelist extends jlist { private bufferedimage background; public backgroundimagelist(object[] values) { super(values); try { background = imageio.read(new file("c:\\users\\shane\\dropbox\\megatokyo\\_cg_836___tilting_windmills___by_serena_clearwater.png")); } catch (ioexception ex) { ex.printstacktrace(); } setopaque(false); setbackground(new color(0, 0, 0, 0)); setforeground(color.white); } @override protected void paintcomponent(graphics g) { if (background != null) { graphics2d g2d = (graphics2d) g.create(); int x = getwidth() - background.getwidth(); int y = getheight() - background.getheight(); g2d.drawimage(background, x, y, this); g2d.dispose(); } super.paintcomponent(g); } } }
Comments
Post a Comment