Java 当存在';还有其他组件吗?
当你点击键盘上的“N”按钮时,我想做其他的功能,但是那里有文本字段,而keylistener没有“监听”。有人有线索吗 这是我在框架中的代码。当我点击键盘上的任何按钮时,它都不会显示任何内容Java 当存在';还有其他组件吗?,java,Java,当你点击键盘上的“N”按钮时,我想做其他的功能,但是那里有文本字段,而keylistener没有“监听”。有人有线索吗 这是我在框架中的代码。当我点击键盘上的任何按钮时,它都不会显示任何内容 public class TodoFrame extends JFrame implements Colleague, KeyListener { private TodoInput todoInput; private Todos todos; private Actions ac
public class TodoFrame extends JFrame implements Colleague, KeyListener {
private TodoInput todoInput;
private Todos todos;
private Actions actions;
private int doneTotal = 0;
private StateModel state;
private Mediator mediator;
public TodoFrame() {
this.state = new StateModel();
this.mediator = new Mediator();
todoInput = new TodoInput(this.mediator); //<- there's textfield in here
this.add(todoInput, BorderLayout.NORTH);
todos = new Todos(this.mediator, this.state);
this.add(todos, BorderLayout.CENTER);
actions = new Actions(this.mediator, this.state);
this.add(actions, BorderLayout.SOUTH);
actions.updateBtn(state);
this.mediator.setAttributes(this, todos);
mediator.attach(this);
mediator.attach(actions);
this.setBackground(Color .BLACK);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.pack();
}
@Override
public void getEvent(Event e) {
if (e instanceof DoneTotalEvent) {
DoneTotalEvent de = (DoneTotalEvent) e;
this.setTitle("Done: " + de.getDoneTotal());
}
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
System.out.println(key); //<- doesn't show anything
}
@Override
public void keyReleased(KeyEvent e) {
}
}
公共类TodofName扩展了JFrame实现了同事、KeyListener{
私有TodoInput TodoInput;
私人待办事项;
私人行动;
private int doneTotal=0;
私人国家模式国家;
私人调解人;
公共TodofName(){
this.state=new StateModel();
this.mediator=new mediator();
todoInput=new todoInput(this.mediator);//无论何时创建监听器(任何类型的监听器,如键事件的KeyListener
,或按钮的ActionListener
),都需要将事件监听器添加到将触发事件的对象中。对于KeyListener,需要调用方法addKeyListener(这个);
(更具体地说,是todoInput.addKeyListener(这个);
)
可以帮助您。您必须将KeyListener添加到JTextField,否则它将无法工作。