k***@gmail.com
2012-12-05 17:27:59 UTC
Hello,
I am attempting to load 5000 employee items into a jcombobox, and then setSelectedIndex, but I am getting a odd delay in the gui after setting the selectedIndex
1) If I load the 5000 employee names using a simple vector, it works fine. When I call setSelectedIndex(5), it sets the combobox to the 5th element, very quickly. This works fine:
while ((line = input.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, "|");
lastName = st.nextToken().trim();
firstName = st.nextToken().trim();
id = Integer.parseInt(st.nextToken().trim());
comboBoxItems.add(lastName);}
mybox1.setModel(new javax.swing.DefaultComboBoxModel(model));
mybox1.setSelectedIndex(5);
2)HOWEVER, if I load an employee object into a mapped vector, and then setSelectedIndex(5), I DO see it instantly set the GUI combobox to the 5th item, BUT then there is a LOOOONG delay in the gui (1 minute or more) before it allows me to do anything further in the gui
while ((line = input.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, "|");
lastName = st.nextToken().trim();
firstName = st.nextToken().trim();
id = Integer.parseInt(st.nextToken().trim());
empBuffer= new Employee(id, lastName );
map.put(empBuffer.getId()+"",empBuffer );
count++; }
model.addAll(map.values());
Collections.sort(model);
mybox1.setModel(new javax.swing.DefaultComboBoxModel(model));
mybox1.setSelectedIndex(5);
public class Employee implements Comparable {
private int id;
private String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public int compareTo(Object emp) {
return getName().compareTo(((Employee)emp).getName());
}
public String toString() {
return getName()+","+getId();
}
}
I am attempting to load 5000 employee items into a jcombobox, and then setSelectedIndex, but I am getting a odd delay in the gui after setting the selectedIndex
1) If I load the 5000 employee names using a simple vector, it works fine. When I call setSelectedIndex(5), it sets the combobox to the 5th element, very quickly. This works fine:
while ((line = input.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, "|");
lastName = st.nextToken().trim();
firstName = st.nextToken().trim();
id = Integer.parseInt(st.nextToken().trim());
comboBoxItems.add(lastName);}
mybox1.setModel(new javax.swing.DefaultComboBoxModel(model));
mybox1.setSelectedIndex(5);
2)HOWEVER, if I load an employee object into a mapped vector, and then setSelectedIndex(5), I DO see it instantly set the GUI combobox to the 5th item, BUT then there is a LOOOONG delay in the gui (1 minute or more) before it allows me to do anything further in the gui
while ((line = input.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, "|");
lastName = st.nextToken().trim();
firstName = st.nextToken().trim();
id = Integer.parseInt(st.nextToken().trim());
empBuffer= new Employee(id, lastName );
map.put(empBuffer.getId()+"",empBuffer );
count++; }
model.addAll(map.values());
Collections.sort(model);
mybox1.setModel(new javax.swing.DefaultComboBoxModel(model));
mybox1.setSelectedIndex(5);
public class Employee implements Comparable {
private int id;
private String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public int compareTo(Object emp) {
return getName().compareTo(((Employee)emp).getName());
}
public String toString() {
return getName()+","+getId();
}
}