private void cbdmnstatItemStateChanged(java.awt.event.ItemEvent evt) {
if(evt.getsource()==getSelectedItem){
tf1.setFocus(true);
}
}
質問する
3772 次
2 に答える
0
このメソッドを使用して、テキストフィールドにフォーカスを設定します。
javax.swing.JComponent#requestFocus()
あなたの場合、それは次のようになります:
private void onStateChange(java.awt.event.ItemEvent evt) {
tf1.requestFocus();
}
更新 これは、テキストフィールドとコンボボックスアイテムが静的である場合は機能しますが、動的である場合は少し複雑になります。
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();
}
}
于 2012-12-27T20:38:00.127 に答える
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);
}
});
}
于 2012-12-27T20:43:56.287 に答える