Javaイベントを学んだ後、私は非常に簡単なメモ帳を自分で書きました。 Menubar、メニュー、Menuitem、その他のコントロールが使用され、イベントにはActionListenerとKeyListenerが含まれます。
コードは次のとおりです。
パッケージcom.package3; /**関数:メモ帳の単純な開発では、ファイルを保存し、ファイルを開き、メモ帳を終了できます*著者:YWQ*/ Import javax.swing。*; java.awt.event。*; java.io.*をインポートします。パブリッククラスのメニットテキスト{//コンポーネントの定義:jframe f; Menubar MB; //メニューバーメニューmu; //メニューjtextarea jta; menuitem openitem、saveitem、closeitem; // submenu filedialog opendia、savedia; //人気のある保存および開いたボックスファイルファイル。 // constructor public menutext(){//初期化関数init(); } //コンポーネントの初期化public void init(){f = new JFrame( "Simple Notepad"); MB = new Menubar(); mu = new Menu( "file"); OpenITem = new Menuitem( "Open"); SaveItem = new Menuitem( "Save"); CloseItem = new Menuitem( "exit"); jta = new jtextarea(); f.add(jta); // mu.add(openitem); mu.add(saveitem); mu.add(closeitem); mb.add(mu); f.setmenubar(MB); opendia = new filedialog(f、 "open"、filedialog.load); savedia = new filedialog(f、 "save"、filedialog.save); // jframe属性F.setbounds(200、300、500、400)を設定します。 f.setDefaultCloseoperation(jframe.exit_on_close); f.setVisible(true); //イベント関数イベントを呼び出します(); } //イベント機能イベントを処理するパブリックvoid event(){// open option optenitem.addActionListener(){@Override public void actionPerformed(ActionEvent e){// call openfile();}}); // save option saveItem.addActionListener(new ActionListener(){@Override public void ActionPerformed(ActionEvent e){//メソッドを呼び出してファイルを保存します。SaveFile();}}); //テキスト領域にイベントを追加します。つまり、Ctrl+sを押して保存します//キーボードでイベントをリッスンする方法はたくさんあり、そのうちの1つだけが必要なので、Adapter keyAdapterを使用できます。 && e.getkeycode == keyevent.vk_s){// savefileを保存します。 //オプションを閉じますclosetem.addActionListener(new ActionListener(){@Override public void ActionPerformed(ActionEvent E){// System System.Exit(0);}}); } //テキストを開く方法public void openfile(){opendia.setVisible(true); //それを表示するように設定します文字列filename = opendia.getFile(); //クリックを防止してエラーをキャンセルした場合(dirpath == null || filename == null)return; jta.settext( ""); //テキスト領域をクリアファイル= new File(dirpath、filename); //ファイルオブジェクトを作成する//行に従ってデータを読み取り、テキスト領域に表示してください{bufferedReader br = new bufferedReader(new fileReader(file));文字列line = null; while((line = br.readline())!= null){jta.append(line+"/r/n"); } br.close(); } catch(ioException ex){new nup runtimeexception( "read failed"); }} //テキストを保存するメソッド。 public void savefile(){//最初にファイルが存在するかどうかを決定します(file == null){savedia.setVisible(true); string dirpath = savedia.getDirectory();文字列filename = savedia.getFile(); //クリックを防止してエラーをキャンセルした場合(dirpath == null || filename == null)return; //ファイルが存在しないため。したがって、ファイルオブジェクトファイル= new File(dirpath、filename)を作成する必要があります。 } //ファイルにデータを書き込むtry {bufferedwriter bw = new bufferedWriter(new filewriter(file));文字列info = jta.getText(); //テキスト領域の情報を取得bw.write(info); //操作bw.flush()を書き込む; bw.close(); } catch(ioException e1){throw new runtimeexception(); }} public static void main(string [] args){//オブジェクトを作成new menutext(); }}}操作結果は図に示されています。
このプログラムによって実装された機能は次のとおりです。
(1)ファイルを開いて編集できます。
(2)編集されたファイルを保存できます。
(3)Ctrl+Sを使用してテキストを保存できます
(4)[CloseItem]をクリックしてプログラムを終了できます。
関数3を実装すると、キーリストナーがテキスト領域に追加され、アダプターキーアダプターがリスニングの実装に使用されます。ただし、組み合わせのリスニングが必要な場合、つまり、CTRLとSの両方が押されたときに保存操作がトリガーされます。
合計リスニングに関して、Java APIは対応する方法を提供します。
KeyEventクラスの直接の親クラス、つまりInputEventクラスを見つけます。図に示されているように:
次のように、inputEventクラスのメソッドを確認してください。
InputEventクラスのサブクラスとして、KeyEventクラスのオブジェクトEを上記の方法に直接呼び出すことができ、判断を下すことができます。 iSControldown()メソッドは、Ctrlキーが押されているかどうかを判断するために使用されます。たとえば、プログラム内の(e.Iscontroldown()&&
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。