Evo jednog primera:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class EnterAsTab extends JFrame
{
JTextField[] tf = new JTextField[3];
public EnterAsTab()
{
setLocation(300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel jp = new JPanel(new GridLayout(5,1));
for(int x = 0; x < tf.length; x++)
{
tf[x] = new JTextField(10);
jp.add(tf[x]);
if(x < tf.length-1)
{
tf[x].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
KeyboardFocusManager.getCurrentKeyboardFocusManager().focusNextComponent();
}
});
}
}
jp.add(new JCheckBox("Hello"));
JButton submitBtn = new JButton("Submit");
this.getRootPane().setDefaultButton(submitBtn);
jp.add(submitBtn);
getContentPane().add(jp);
pack();
submitBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.out.println("Submitted");}});
}
public static void main(String args[]){new EnterAsTab().setVisible(true);}
}
Bitan je ovaj deo:
Code:
tf[x].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
KeyboardFocusManager.getCurrentKeyboardFocusManager().focusNextComponent();
}
}
);
ENTER je ActionCommand-a zato smo dodali ActionListener i u njemu obavljamo fokusiranje sledece komponente.
Sledeca komponenta je ona koja je sledeca dodata na roditeljsku komponentu (JPanel jp), tako da ovde imamo da se prvo dodaje tx[0], pa tx[1], pa tx[2].
U tom redosledu ce biti i selektovani.
Ako zelis da imas i SHIFT+ENTER onda mora malo drugacije da se odradi.