在java中分离类.例如,虚拟键盘(带有activelisteners)和另一个从键盘类接收输入的类



我有一个虚拟键盘类,它使用JAVA中的JButtons实现了QWERTY纯字母数字屏幕键盘。我为每个按钮安装了actionlisteners,这样每当点击按钮时,就会记录按钮的标签。

我想做的是,在保持键盘类独立的同时,我想创建一个键盘类的实例,以便它接收输入并将其传递回主类,然后这可以在循环中发生。就像您可以使用has.nextLine()不断请求输入一样,我希望能够通过创建屏幕键盘类的实例来实现这一点。

我已经编写了键盘类,它运行得很好,但问题是整数是键盘类的本地整数,我想不出一种方法可以把它放在类之外。

您可以使用观察者模式。我不是在这里使用摇摆,只是为了展示它的效果。

使键盘类可观察

    import java.util.Observable;
    public class Keybaord extends Observable {
        private String keyThatIsPressed;
        public void setKeyThatIsPressed(String keyThatIsPressed) {
            this.keyThatIsPressed = keyThatIsPressed;
            setChanged();
            notifyObservers(keyThatIsPressed);
        }
        public String getKeyThatIsPressed(){
            return keyThatIsPressed;
        }
 }

使您的主要类观察者

import java.util.Observable;
import java.util.Observer;
public class MainClass implements Observer {
    private String keyThatIsPressed;
    @Override
    public void update(Observable observable,
            Object object) {
        if (object instanceof String) {
            this.keyThatIsPressed = (String) object;
            System.out.println("Key that was unlucky enough to get pressed was: "
                    + keyThatIsPressed);
        } 
    }
}

相关内容

最新更新