正如我所见,许多答案对像我这样的入门级学生来说太模糊了。
我首先按addActionListner(this)
到JTextField
的步骤进行操作。
我接下来想做什么,最让人困惑的是:
public void actionperformed(Actionevent ae){
if(ae.getSource() == "Enter pressed")
{
outArea.setText(result);
}
}
这不起作用,因为我觉得代码ae.getSource() == "Enter presses"
无法正常工作,甚至我替换了我在actionPerformed下执行的操作,如System.out.println这样简单的打印行命令(" working& #34;),它不会执行。
如果按下按钮,我会这样做。
public void actionperformed(Actionevent ae){
if(ae.getSource() == "JButton")
{
System.out.println("JButton was pushed");
}
}
无论如何,假设我有一个GUI,其中包含一些给定的代码:
public static void main(string[] args){
new myProg();
}
public myProg(){
....
buildTheGUI();
...}
}
//GUI Objects
...
JTextField input = new JTextField(10);
...
//method building the GUI
public void buildTheGUI(){
...
input.addActionListner(this);
...
//a method called actionPerformed
public void actionperformed(Actionevent ae){
}
我现在正试图通过actionListner检测输入键,而不是任何其他方法,因为它已经给出了。
答案 0 :(得分:2)
首先,actionPerformed
由动作事件触发,通常在大多数系统上,这由 Enter 键(带有JTextField
的上下文)触发......所以你不需要检查它。
其次,source
的{{1}}通常是触发它的控件,在这种情况下就是ActionEvent
。
第三,Java中的JTextField
比较是通过String
方法...
String#equals
答案 1 :(得分:0)
您对Button的actionPerformed方法错误,请尝试更好:
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JButton) {
JButton button = (JButton) e.getSource();
System.out.println("This button was pushed: " + button.getText());
}
}
您的KeyListener尝试使用它来了解它是如何工作的:
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
System.out.println(e.getKeyCode());
}
别忘了让您的班级实施ActionListener
和KeyListener
。