Java 이벤트를 배운 후, 나는 매우 간단한 메모장을 직접 썼습니다. Menubar, 메뉴, Menuitem 및 기타 컨트롤이 사용되며 이벤트에는 ActionListener 및 Keylistener가 포함됩니다.
코드는 다음과 같습니다.
패키지 com.package3; /** 기능 : 메모장의 간단한 개발, 파일을 저장하고 파일을 열고 Notepad를 종료 할 수 있습니다.* 저자 : ywq*/ import javax.swing.*; import java.awt.event.*; java.io.*; 공개 클래스 menutext {// 구성 요소 정의 : jframe f; Menubar MB; // 메뉴 바 메뉴 MU; // 메뉴 jtextArea jta; menuitem openitem, saveitem, closeitem; // submenu filedialog opendia, savedia; // 인기있는 저장 및 열린 상자 파일 파일; // 생성자 public menutext () {// 초기화 함수를 호출 init (); } // 구성 요소 초기화 public void init () {f = new Jframe ( "Simple Notepad"); MB = 새로운 메뉴 바 (); MU = 새 메뉴 ( "파일"); OpenItem = New Menuitem ( "Open"); saveitem = new menuitem ( "저장"); closeItem = new menuitem ( "종료"); JTA = 새로운 jtextArea (); F.add (JTA); // mu.add (OpenItem) 추가; mu.add (saveitem); mu.add (closeitem); mb.add (mu); F. 세트 메뉴 바 (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. 세트 Visible (true); // 호출 이벤트 기능 이벤트 (); } // 이벤트를 처리하는 이벤트 함수 public void event () {// 옵션 OpenItem.addactionListener (new ActionListener () {@override public void actionPerformed (actionEvent e) {// call openFile ();}}); // 옵션 저장 옵션 saveItem.addactionListener (new ActionListener () {@override public void actionPerformed (actionEvent e) {// 파일을 저장하려면 메소드를 호출합니다. savefile ()}}); // 텍스트 영역에 이벤트를 추가합니다. e.getKeyCode () == keyEvent.vk_s) {// 파일을 저장합니다. // 옵션을 닫습니다. AddactionListener (new ActionListener () {@override public void ActionPerformed (ActionEvent e) {// 시스템 시스템을 종료합니다 (0);}}); } // 텍스트를 열 수있는 메소드 공개 void OpenFile () {opendia.setVisible (true); // 표시하도록 설정 // 경로와 파일 이름을 가져옵니다. String dirpath = opendia.getDirectory (); 문자열 filename = opendia.getFile (); // (dirpath == null || filename == null) 반환; jta.settext ( ""); // 텍스트 영역을 지우십시오. 파일 = 새 파일 (dirpath, filename); // 파일 생성 // 라인에 따라 데이터를 읽고 텍스트 영역에 표시하십시오 {bufferedReader br = new BufferedReader (new FilEReader (file)); 문자열 라인 = null; while ((line = br.readline ())! = null) {jta.append (line+"/r/n"); } br.close (); } catch (ioException ex) {throw new runtimeexception ( "읽기 실패"); }} // 텍스트를 저장하는 메소드. public void savefile () {// 먼저 파일이 존재하는지 (file == null) {savedia.setVisible (true); 문자열 dirpath = savedia.getDirectory (); 문자열 filename = savedia.getFile (); // (dirpath == null || filename == null) 반환; // 파일이 존재하지 않기 때문에. 따라서 파일 객체 파일 = 새 파일 (dirpath, filename)을 만들어야합니다. } // 파일에 데이터를 쓰기 {bufferedWriter bw = new BufferedWriter (new filewriter (file)); 문자열 정보 = 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 키를 누르는지 여부를 결정하는 데 사용됩니다. 예를 들어, if (e.iscontroldown () && e.getKeyCode () == keyEvent.vk_s)는 조합 판단을 실현합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.