private void cbdmnstatItemStateChanged(java.awt.event.ItemEvent evt) {
if(evt.getsource()==getSelectedItem){
tf1.setFocus(true);
}
}
答案 0 :(得分:0)
使用此方法在文本字段上设置焦点。
javax.swing.JComponent#requestFocus()
在你的情况下,它看起来像:
private void onStateChange(java.awt.event.ItemEvent evt) {
tf1.requestFocus();
}
<强>更新强> 如果你的textfields和combobox-items是静态的,那么这对你有用,如果它们是动态的,它会变得有点复杂。
private void onStateChange(java.awt.event.ItemEvent evt) {
Object selectedItem = evt.getItem();
if (selectedItem.equals("X")) {
jTextField1.requestFocus();
} else if (selectedItem.equals("Y")) {
jTextField2.requestFocus();
} else if (selectedItem.equals("Z")) {
jTextField3.requestFocus();
}
}
答案 1 :(得分:0)
基本上你应该这样(一个快速的例子):
public class TestApp {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 300);
Container pane = f.getContentPane();
final JTextField field = new JTextField();
pane.add(field);
pane.add(new JTextField(), BorderLayout.NORTH);
JComboBox b = new JComboBox();
b.addItem("Don't focus");
b.addItem("Focus");
b.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
if("Focus".equals(e.getItem())) {
field.requestFocus();
}
}
}
});
pane.add(b, BorderLayout.SOUTH);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}