numaralı tuşa bastığınızda odağı ayarlar. JTextField'a girdiğimde, belirli bir JButton'u etkinleştirmesi için bunu nasıl yapabilirim? Demek istediğim, formdaki düğmeyi etkinleştirmek için enter tuşuna basabildiğiniz bir web sayfası formundaki çizgilerdir. Teşekkürler.Java,
Java,
cevap
Sen JButton
için Action
kullanmalıdır:
textField.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
button.requestFocusInWindow();
}
});
Böyle bir şey çalışması gerekir: Sonra
Action sendAction = new AbstractAction("Send") {
public void actionPerformed(ActionEvent e) {
// do something
}
};
JButton button = new JButton(sendAction);
:
textField.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
button.doClick();
}
}
});
}
gibi düğmeye default
davranışı ekleyerek bunu başarabilirsiniz ve onu koyar Düğmeye odaklanın, ancak etkinleştirmez. –
LOD121
Bu, requestFocusInWindow() yöntemi, teneke üzerinde yazdığı şeyi yapmaz. Bir tıklamayı simClick yapmak için doClick() yöntemi şudur. – berry120
button.doClick(); iyi çalışıyor. Teşekkürler. – LOD121
aşağıdaki gibi bir şey yaparım Aynı işlemi JTextField
için veya hatta bir MenuItem
aynı eylem Menüsü kullanılabilir olmasını istiyorsanız:
JTextField textField = new JTextField();
textField.setAction(sendAction);
Sen sadece o çalıştı bu
cmdLogin.setDefaultCapable(true); // by default, this is true
this.getRootPane().setDefaultButton(cmdLogin); // here `this` is your parent container
+1, cool, setAction() yöntemini bile bilmiyordum. Her zaman addActionListener kullandım. Her iki durumda da bu daha iyi bir çözüm. – camickr