java - problem with setSelectedValue Method for JList -
java - problem with setSelectedValue Method for JList -
i having troubles when run main class application. fact setselectedvalue method doesn't work. code main class following:
databaseconnection.getinstance().connect("org.sqlite.jdbc", "jdbc:sqlite:db/universidad.sqlite"); databasetablemanagers managers = databasetablemanagers.getinstance(); databasemanagerjlist.getinstance().setselectedvalue("alumnos"); system.out.println(databasemanagerjlist.getinstance().devolver() + "1"); alumnostablemanager atm = alumnostablemanager.getinstance(); system.out.println(databasemanagerjlist.getinstance().devolver() + "2"); carrerastablemanager ctm = carrerastablemanager.getinstance(); system.out.println(databasemanagerjlist.getinstance().devolver() + "3"); managers.add(atm); system.out.println(databasemanagerjlist.getinstance().devolver() + "4"); managers.add(ctm); system.out.println(databasemanagerjlist.getinstance().devolver() + "5"); databasemanagerjframe dbmf = new databasemanagerjframe(); system.out.println(databasemanagerjlist.getinstance().devolver() + "6"); dbmf.setvisible(true); }
}
and next result in console shows me method doesn't set default value i've put: null1 null2 null3 null4 null5 null6
the code jlist class following: public class databasemanagerjlist extends jpanel {
private static final long serialversionuid = 1l; private static jlist tablas; defaultlistmodel model; databasetablemanagers dtm = databasetablemanagers.getinstance(); private static databasemanagerjlist instance = null; public static databasemanagerjlist getinstance() { if (instance == null) { instance = new databasemanagerjlist(); } homecoming instance; } public databasemanagerjlist() { model = new defaultlistmodel(); arraylist<string> aux = new arraylist<string>(dtm.gettablenames()); for(int =0;i<aux.size();i++) { model.addelement(aux.get(i)); } tablas = new jlist(model); //tablas.setselectedvalue("alumnos",true); add(tablas); } public string devolver() { homecoming (string) tablas.getselectedvalue(); } public void setselectedvalue(string name) { tablas.setselectedvalue(name, true); }
}
the problem describing means object wasn't found in list. setselectedvalue()
method works doing calls object.equals()
(in case string.equals()
), probable cause strings contained in aux capitalized in different way string trying select.
for instace aux
may contain string "alumnos" instead of "alumnos". there 2 alternatives this, if don't care capitalization (then alter string "alumnos" whatever within aux
) if care capitalization , still want utilize strings, simple create mystring class extends string , overrides equals method, like:
public class mystring extends string { @override public boolean equals(object obj){ if (obj instanceof string){ string obj2 = (string)obj; homecoming this.equalsignorecase(obj2); } homecoming false; } }
another alternative (perhaps nicer one) create wrapper object list.
public class mywrapper { private string payload; public mywrapper(string payload){ this.payload = payload; } @override public string tostring(){ homecoming payload; } @override public boolean equals(object obj){ if (obj instanceof mywrapper){ mywrapper obj2 = (mywrapper)obj; homecoming payload.equalsignorecase(obj2.payload); } homecoming false; } }
java jlist
Comments
Post a Comment