Solved

JList List Selection Listener

Posted on 2003-11-18
3
1,313 Views
Last Modified: 2012-05-04
Hello all,
I am working on a project for my java class that is GUI based. Its basically a bank application. There are two JLists on the GUI, one holds customers, and the other holds the accounts associated with the customer that is selected in the customer JList. I know I have to have the ListSelectionListener, and I need it on both of the JLists. I have to keep track of the current customer selected, and the current account that is selected. So I do need the listeners for both of these JLists correct? But when I have both of the JLists have listeners, I just got a bunch of dispatch errors and it looks like it selects an account item in some kind of loop and then terminates my program. I am confused. I have written the valueChanged(ListSelectionEvent e) as the following:

 public void valueChanged(ListSelectionEvent e)
   {
      Object selectedData = ((JList)e.getSource()).getSelectedValue();

      if(selectedData != null)
      {
        //Get the number of the customer selected in the list
        StringTokenizer st = new StringTokenizer(selectedData.toString());
        int custNum = Integer.parseInt(st.nextToken());

        //Set the current customer and show their accounts
        currentCustomer = theBank.getCustomer(custNum);

        accountList.setListData(currentCustomer.getTotalAccountInfo());
        accountList.setSelectedIndex(0);

        if(accountList.getModel().getSize() > 0)
        {
          //Get the account number of the account selected in the list
          StringTokenizer st2 = new StringTokenizer(accountList.getSelectedValue().toString());
          int acctNum = Integer.parseInt(st2.nextToken());
          currentAccount = currentCustomer.locateAccount(acctNum);
        }
        else
        {
           currentAccount = null;
        }
      }

      System.out.println(currentCustomer);
      System.out.println(currentAccount);
   }

So my problem is that I need to get the current selected account. The current customer part works fine, but when I added the account list listener, it went crazy. I can send the whole code as well, but I think the problem lies within this code.

Thanks in advance!
0
Comment
Question by:LBoogie
3 Comments
 
LVL 15

Accepted Solution

by:
jimmack earned 80 total points
Comment Utility
If the same listener is used for both lists, you should do something like this:

if (e.getSource() == firstList)
{
   // processing when first list changes
}
else if (e.getSource() == secondList)
{
   // processing when second list changes
}
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
Or just use different listeners for easch list
0
 

Author Comment

by:LBoogie
Comment Utility
jimmack,
That is what I needed. Thanks =)

0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will learn how to implement Singleton Design Pattern in Java.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now