Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当存在';还有其他组件吗?_Java - Fatal编程技术网

Java 当存在';还有其他组件吗?

Java 当存在';还有其他组件吗?,java,Java,当你点击键盘上的“N”按钮时,我想做其他的功能,但是那里有文本字段,而keylistener没有“监听”。有人有线索吗 这是我在框架中的代码。当我点击键盘上的任何按钮时,它都不会显示任何内容 public class TodoFrame extends JFrame implements Colleague, KeyListener { private TodoInput todoInput; private Todos todos; private Actions ac

当你点击键盘上的“N”按钮时,我想做其他的功能,但是那里有文本字段,而keylistener没有“监听”。有人有线索吗

这是我在框架中的代码。当我点击键盘上的任何按钮时,它都不会显示任何内容

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,否则它将无法工作。