这里是按下的ENTER键和TextField中的鼠标的代码。我需要的是程序只在按下ENTER键时鼠标位于JTextField内部时才运行我的代码。谢谢你的帮助!
string是我命名为JTextField的 该程序所做的是获取一个String,然后在单击JButton时显示其反向,或者在按下ENTER时鼠标位于JField中。
string.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String word = string.getText();
String reversed = "";
char[] letters = word.toCharArray();
for (int i = letters.length-1; i>=0; i--) {
reversed = reversed + letters[i];
}
reversed.trim();
reverseStr.setText(reversed);
}
});
string.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent arg0) {
String word = string.getText();
String reversed = "";
char[] letters = word.toCharArray();
for (int i = letters.length-1; i>=0; i--) {
reversed = reversed + letters[i];
}
reversed.trim();
reverseStr.setText(reversed);
}
public void mouseClicked(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
});
答案 0 :(得分:0)
您可以定义一个字段,以检查鼠标是否在文本字段中。然后在按下ENTER时以及此字段为true
时运行代码。
看看这段代码:
package test;
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test extends JFrame {
private static final long serialVersionUID = -3677708759387911324L;
private boolean mouseInField = false;
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new Test().setVisible(true);
});
}
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
JTextField textField = new JTextField(15);
getContentPane().add(textField, BorderLayout.PAGE_START);
textField.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
mouseInField = true;
System.out.println("mouse entered");
}
@Override
public void mouseExited(MouseEvent e) {
mouseInField = false;
System.out.println("mouse exited");
}
});
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER && mouseInField)
System.out.println("enter is pressed while mouse is in text field.");
}
});
}
}