mausam
Posts: 243
Nickname: mausam
Registered: Sep, 2003
|
|
Re: Problem with dropdown
|
Posted: Dec 17, 2004 3:52 AM
|
|
public class AminurKeyKeyListener implements KeyListener
{
JList listOfData;
int startCounter = 0;
boolean currentSearchFound =false;
public AminurKeyKeyListener (JList listOfData)
{
this.listOfData = listOfData;
startCounter=0;
}
public void keyTyped(KeyEvent ke)
{
}
public void keyPressed(KeyEvent ke)
{
char charPressed = ke.getKeyChar();
startCounter = listOfData.getSelectedIndex();
//The string object is created to change the charPressed to LowerCase.
char [] tempCharArray = {charPressed};
String charString = new String(tempCharArray);
charString = charString.toLowerCase();
charPressed = charString.charAt(0);
ListModel listModel = listOfData.getModel();
currentSearchFound=false;
ListCellRenderer cellRenderer = listOfData.getCellRenderer();
for(int i=startCounter+1;i<listModel.getSize();i++)
{
String test = ((javax.swing.JLabel)(cellRenderer.getListCellRendererComponent(listOfData,listModel.getElementAt(i),0,false,false))).getText();
if (test!=null && test.length()!=0)
{
if (charPressed==test.trim().toLowerCase().charAt(0))
{
listOfData.setSelectedIndex(i);
listOfData.ensureIndexIsVisible(i);
currentSearchFound=true;
break;
}
currentSearchFound=false;
}
}
if (!currentSearchFound && startCounter !=0 )
{
for (int k=0;k<startCounter ;k++ )
{
String test = ((javax.swing.JLabel)(cellRenderer.getListCellRendererComponent(listOfData,listModel.getElementAt(k),0,false,false))).getText();
if (test!=null && test.length()!=0)
{
if (charPressed==test.trim().toLowerCase().charAt(0))
{
listOfData.setSelectedIndex(k);
listOfData.ensureIndexIsVisible(k);
break;
}
currentSearchFound=false;
}
}
}
}
public void keyReleased(KeyEvent ke)
{
}
}
add a key listener to ur list and do something like the code above.
In my code if u press V, vipin gets selected... now u will have to store v and i also to differenciate between vipin and veneet. I have done it for JList, you do it for JComboBox
|
|