• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 451
  • Last Modified:

JList set selected + java

Hi all,

I am using the following method in order to select an item in a JList depending upon the text typed in the JTextField. I am using the DocumentListener and adding the listener to the JTextField. Everything works fine but item in JList is not getting highlighted upon the text typed in TextField. Can anyone let me know whats wrong in the code.

In the following code, 2nd if condition is not satisfying.....Any suggestions are welcome on this. Pls treat it as urgent.

Thanx.


  //This method is used to set the username selected in the JList based on the text typed in the textfield.
    public void selectNearest(String text, JList list) {
      String item = null;
      for (int i = 0; i < list.getModel().getSize(); i++) {
        item = (String)list.getModel().getElementAt(i);
        if (text.length() <= item.length()) {
          System.out.println("Value in text is ******* "+text.charAt(0));
          System.out.println("Value in item is ******* "+item.charAt(0));
          //list.setSelectedIndex(i);
          if (item.substring(text.length()).equals(text)) {
          //if (text.equals(item.substring(text.length()))) {
            System.out.println("Coming inside 2nd if **********************");
            //System.out.println("Value in item in if 2 is ******* "+text.charAt(0));
            //System.out.println("Value in text in if 2 is ******* "+item.charAt(0));
            list.setSelectedIndex(i);
            list.updateUI();
            return;
          }
        }
      }
    }
0
raaz007
Asked:
raaz007
  • 4
  • 3
1 Solution
 
Mayank SAssociate Director - Product EngineeringCommented:
Is it entering the selectNearest () method? Can we have the code for the listener too?
0
 
raaz007Author Commented:
Yes, its entering the selectNearest() method. I have said earlier that its not getting into the 2nd if condition. Hope u understood now my problem clearly.

Following is the code where i am calling this method.

 //Testing DocumentListener for JTextField.
    public void removeUpdate(DocumentEvent e) {
    }

    public void insertUpdate(DocumentEvent e) {
      System.out.println("Value typed is ********** " +txt_WorkerName.getText());
      selectNearest(txt_WorkerName.getText(), list_WorkerNames);
    }

    public void changedUpdate(DocumentEvent e) {
    }
0
 
Mayank SAssociate Director - Product EngineeringCommented:
Is it supposed to be case-sensitive or insensitive? Which part of the selectNearest () method is it going into?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
raaz007Author Commented:
its not at all case sensisitive.......

Its going with inside the 1st IF condition but not going inside the 2nd IF condition of searchNearest() method.

Hope you understood now.....!!!
I feel you're not at all getting the problem clearly. Hope this time you got it.....!!!!  Its failing within the 2nd IF i.e., in the following code if you can see 2nd IF....there its failing......!!!!!!!




      if (text.length() <= item.length()) {
          System.out.println("Value in text is ******* "+text.charAt(0));
          System.out.println("Value in item is ******* "+item.charAt(0));
          if (item.substring(text.length()).equals(text)) {
                      System.out.println("Coming inside 2nd if ******");
            list.setSelectedIndex(i);
        }
0
 
raaz007Author Commented:
Did you get the problem now....or not now also..................????
0
 
raaz007Author Commented:
Please let me know if you're in a position to answer my question..!!!
I am waiting for it.....!!!!!
0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> Did you get the problem now....or not now also..................????
>> Please let me know if you're in a position to answer my question..!!!

There is a time-zone difference between us. I saw your comments only now.

>> Its failing within the 2nd IF

Perhaps you can try equalsIgnoreCase () in that case.

>> if (item.substring(text.length()).equals(text))

if ( item.substring ( text.length () ).equalsIgnoreCase ( text ) )

Ok, I found a big mistake. If you pass one argument to the the substring () method, then it will get you a substring from that position to the end of the string, not from the start of the string to that position. So, you should use:

if ( item.substring ( 0, text.length () ).equalsIgnoreCase ( text ) )

- you can check what values the substring () method prints by displaying it on the console, and you can verify whether it matches the 'text'.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now