swing - Java GUI - JList won't display -
i've encountered bit of weird issue. there's part of program sets , updates list , displays fine, when use same code in part of program, doesn't.
so i'm trying display list of names in jlist when button clicked (after program run , frame loaded), , jlist component refuses display anything.
the difference in working set of code , one, code in try catch (which needed client server code). know it's not client server issue, need try catch part of code.
here code (the commented out stuff of attempts @ fixing issue, no avail yet):
jlist<string> lreceivedlclient1files = new jlist<string>(); //string[] fakelist = new string[1]; //fakelist[0] = "no files display yet"; //lreceivedlclient1files.setlistdata(fakelist); jbutton btnfilelist = new jbutton("request file list"); btnfilelist.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { try { ////other client server code here//// int counter = 0; (int = 0;i<nameslist.length;i++) { leechersocket.receive(thenamepacket); thename = new string(thenamebuffer); nameslist[counter] = thename; counter+=1; } lreceivedlclient1files.setlistdata(nameslist); //lreceivedlclient1files.setmodel(nameslist); //lreceivedlclient1files = new jlist(nameslist); //validate(); } catch (unknownhostexception e1) { e1.printstacktrace(); } catch (socketexception e1) { e1.printstacktrace(); } catch (ioexception e1) { e1.printstacktrace(); } } }); leecherpanel.add(lblfilelist); leecherpanel.add(btnfilelist); leecherpanel.add(lreceivedlclient1files); add(leecherpanel); pack(); is there way around this?
i think problem you're trying create instance of interface:
btnfilelist.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) {...
what want create nested class implements actionlistener (remember implement interfaces, whereas extend classes). example of doesn't work in similar way yours:
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class buttontest { jbutton button; public static void main(string[] args) { buttontest gui = new buttontest(); gui.go(); } public void go() { jframe frame = new jframe("button test"); button = new jbutton("clik meh pl0x"); button.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { string buttontext = button.gettext(); buttontext += " <teehee>"; button.settext(buttontext); } }); frame.getcontentpane().add(borderlayout.north, button); frame.setsize(1000,100); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); } } how fix nested class:
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class buttontest { jbutton button; public static void main(string[] args) { buttontest gui = new buttontest(); gui.go(); } public void go() { jframe frame = new jframe("button test"); button = new jbutton("clik meh pl0x"); button.addactionlistener(new buttonlistener()); frame.getcontentpane().add(borderlayout.north, button); frame.setsize(1000,100); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); } public class buttonlistener implements actionlistener { public void actionperformed(actionevent e) { string buttontext = button.gettext(); buttontext += " <teehee>"; button.settext(buttontext); } } } screenshot of output after compiling, running, , several clicks:
Comments
Post a Comment