JTextField에서 Enter 프레스를 검출합니다.
JTextField를 Java로 입력할 때 누르면 검출할 수 있습니까?버튼을 생성하여 기본값으로 설정할 필요가 없습니다.
A JTextField
를 사용하도록 설계되어 있습니다.ActionListener
마치 …처럼JButton
를 참조해 주세요.addActionListener()
의 방법JTextField
.
예를 들어 다음과 같습니다.
Action action = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("some action");
}
};
JTextField textField = new JTextField(10);
textField.addActionListener( action );
이제 키가 사용되면 이벤트가 발생합니다.
또, 버튼을 디폴트버튼으로 하지 않아도, 버튼과 청취자를 공유할 수 있는 이점도 있습니다.
JButton button = new JButton("Do Something");
button.addActionListener( action );
주의: 이 예에서는,Action
를 실장합니다.ActionListener
왜냐면Action
는 기능이 추가된 새로운 API입니다.예를 들어, 디세블로 할 수 있습니다.Action
텍스트 필드와 버튼 모두에 대해 이벤트를 비활성화합니다.
JTextField function=new JTextField(8);
function.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//statements!!!
}});
위와 같이 JTextField에 addActionListener를 추가하면 됩니다.누르면 문에서 원하는 작업이 수행됩니다.
이벤트 추가:KeyPressed
.
private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_ENTER) {
// Enter was pressed. Your code goes here.
}
}
당신은 이런 것을 하고 싶나요?
JTextField mTextField = new JTextField();
mTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
// something like...
//mTextField.getText();
// or...
//mButton.doClick();
}
}
});
다른 답변(허용된 답변 포함)도 좋지만 Java8을 이미 사용하고 있는 경우 다음 작업을 수행할 수 있습니다(짧고 새로운 방법으로).
textField.addActionListener(
ae -> {
//dostuff
}
);
받아들여진 답변이 말해주듯, 당신은 간단히 반응할 수 있습니다.ActionListener
Enter-Key를 검출합니다.
단, 이 접근방식은 Java 8에서 도입된 기능 개념을 활용합니다.
예를 들어 버튼 및 JTextField에 대해 동일한 액션을 사용하는 경우 다음 작업을 수행할 수 있습니다.
ActionListener l = ae -> {
//do stuff
}
button.addActionListener(l);
textField.addActionListener(l);
자세한 설명이 필요하시면 알려주세요!
먼저 JButton 또는 JTextField에서 add action 명령어는 다음과 같습니다.
JButton.setActionCommand("name of command");
JTextField.setActionCommand("name of command");
다음으로 JTextField와 JButton 양쪽에 ActionListener를 추가합니다.
JButton.addActionListener(listener);
JTextField.addActionListener(listener);
그 후 On You Action Listener 구현에 대해
@Override
public void actionPerformed(ActionEvent e)
{
String actionCommand = e.getActionCommand();
if(actionCommand.equals("Your actionCommand for JButton") || actionCommand.equals("Your actionCommand for press Enter"))
{
//Do something
}
}
JTextField 엔터에서 기본 버튼 액션을 설정하려면 다음 작업을 수행해야 합니다.
//put this after initComponents();
textField.addActionListener(button.getActionListeners()[0]);
버튼에는 많은 액션이 있을 수 있지만 보통 1개(Action Performed)만 있기 때문에 [0]입니다.
프레임 내의 각 텍스트필드에 대해 addKeyListener 메서드를 호출합니다.그런 다음 keyPressed 메서드를 구현하고 덮어씁니다.이제 프레임 내의 임의의 필드에서 Enter 키를 눌러 액션을 활성화할 수 있습니다.
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
//perform action
}
}
public void keyReleased(KeyEvent e)
{
int key=e.getKeyCode();
if(e.getSource()==textField)
{
if(key==KeyEvent.VK_ENTER)
{
Toolkit.getDefaultToolkit().beep();
textField_1.requestFocusInWindow();
}
}
Enter press' 로직 쓰기JTextField
, 로직을 내부로 유지하는 것이 좋습니다.keyReleased()
대신 차단하다keyTyped()
&keyPressed()
.
다음 코드를 사용합니다.
SwingUtilities.getRootPane(myButton).setDefaultButton(myButton);
언급URL : https://stackoverflow.com/questions/4419667/detect-enter-press-in-jtextfield
'source' 카테고리의 다른 글
느낌표 두 개? (0) | 2022.09.08 |
---|---|
PHP는 array_push를 사용하여 요소를 다차원 배열에 추가합니다. (0) | 2022.09.08 |
mysql 테이블 생성 쿼리에서 행 크기가 너무 큽니다. (0) | 2022.09.08 |
ES6의 "export const"와 "export default"의 비교 (0) | 2022.09.08 |
해시맵에서1개의 엔트리를 반복하지 않고 취득하는 방법 (0) | 2022.09.08 |