JInternalFrameをJDesktopPaneに拡張する "Terminal"を追加しました。 likeは、抽象メソッドelabを含むインタフェースであり、そのインスタンスを変数に格納します。 「OK」を押すと、exec.elab(String arg)
メソッドが呼び出されます。私のJDesktopPaneに私はTerminal(new BasicCommands())
を作成しました。その作成の後、コマンドで、私はterminal.setExec(new AdvancedCommands())
でTerminalのインスタンスを変更したいと思います.ExpandCommandsとBasicCommandsはExecutableインターフェイスを実装し、独自のelabメソッドを含むクラスです。だから、私がそれをするとき、私は警告やその他のことはしませんが、terminal.setExec(new AdvancedCommands())
に私のelabメソッドを変更するには、何も変わりません...どうすればいいですか?私は私がターミナルクラスでのKeyListenerを追加する方法JDesktopPaneのコンポーネントをリフレッシュする方法
...さわやか端子(再検証と再描画)何もしてみました:
inputArea.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyCode()==KeyEvent.VK_ENTER){
if(!inputArea.getText().isEmpty()){
scrollPane.getVerticalScrollBar().setValue(scrollPane.getVerticalScrollBar().getMaximum());
exec.elab(new Str(inputArea.getText())); //I want to change this method with ter.setExec(some class that implements Executable);
clearInputArea();
}
}
}
});