devxlogo

List Selection Actions

List Selection Actions

Question:
When someone selects one item on my list, I want an inputfield to appear next to it. How do I do this?

Answer:
Rather than provide you with the code to do this, I will describethe concepts you need in order to implement this. When you select an item in aList, an ItemEvent is generated and forwarded to all of the List’sregistered ItemListeners. You can register an ItemListener with theaddItemListener method and remove one with removeItemListener. So thefirst step you have to take is to create an ItemListener that willreact to the selection of a list item. An ItemEvent indicating theselection of a list item will return ItemEvent.SELECTED when itsgetStateChange() method is called. If an item was deselected,getStateChange() will return ItemEvent.DESELECTED.

Once it has identified a list selection, your ListItemListener hasto take care of adding a TextField to your GUI.

You will run intoproblems if you are using java.awt.List and want to place the fieldright next to the selected item. The List class doesn’t providea mechanism for determing the bounding coordinates of an item. Ifyou need this information, you should use javax.swing.JList instead.It provides a method calledRectangle getBounds(int index1, int index2) which willgive you the bounding rectangle for a range of items. You can usethis information to determine the x and y coordinates at which toplace your TextField. In addition, if you use JList, you can placethe TextField in the same JScrollPane as the JList, so the field willscroll along with the list.

devx-admin

Share the Post: