-
java) 메모장 만들기 3) 윈도우 계산기 띄우기, 브라우저 실행하기, 팝업 메뉴 (+Desktop 클래스 / URI 클래스)JAVA/멀티스레드, 이벤트 2024. 5. 28. 19:26
▤ 목차
✔ 윈도우 계산기 띄우기
💻 코드로 보기
else if (e.getSource() == mnuEtc1) { // 계산기 //exe (실행파일) 실행하기 try { Runtime runtime = Runtime.getRuntime(); runtime.exec("calc.exe"); } catch (Exception e2) { JOptionPane.showConfirmDialog(this, e2.getMessage()); } }
✔ 브라우저 실행하기
💻 코드로 보기
else if (e.getSource() == mnuEtc2) {// 브라우저 실행하기 try { String url = "https://www.naver.com/"; // deskTop 지원 확인 if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); // 싱클톤이다. if (desktop.isSupported(Desktop.Action.BROWSE)) { // 포함관계이다. // URI는 문자열, 특정 리소스를 의미 desktop.browse(new URI(url)); } else { JOptionPane.showConfirmDialog(this, "브라우저 지원을 안한다."); } } } catch (Exception e2) { JOptionPane.showConfirmDialog(this, e2.getMessage()); } }
✔ 팝업만들기
💻 코드로 보기
private void menuLayout() { .... popup = new JPopupMenu(); JMenu menuColor = new JMenu("색 선택"); m_white = new JMenuItem("하양"); m_blue = new JMenuItem("파랑"); m_yellow = new JMenuItem("노랑"); menuColor.add(m_white); menuColor.add(m_blue); menuColor.add(m_yellow); m_white.addActionListener(this); m_blue.addActionListener(this); m_yellow.addActionListener(this); popup.add(menuColor); txtMemo.add(popup); // txtMemo에 팝업 추가 txtMemo.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { if ((e.getModifiersEx() & MouseEvent.BUTTON3_DOWN_MASK) == MouseEvent.BUTTON3_DOWN_MASK) { popup.show(txtMemo, e.getX(), e.getY()); } } }); } public void actionPerformed(ActionEvent e) { ... else if (e.getSource() == m_white) { // 팝업 메누 txtMemo.setBackground(Color.WHITE); }else if (e.getSource() == m_blue) { // 팝업 메누 txtMemo.setBackground(Color.blue); }else if (e.getSource() == m_yellow) { // 팝업 메누 txtMemo.setBackground(Color.YELLOW); } }
👏 중요
예전에는 getModifiers() 메서드를 사용했다.
if(e.getModifiers() == MouseEvent.BUTTON3_MASK) { popup.show(txtMemo,e.getX(),e.getY()); };
✔ Desktop 클래스
Java 애플리케이션에서 URL을 브라우저로 실행시키거나 이미지를 뷰어로 열거나 텍스트 파일을 메모장으로 열어야 하는 상황을 고려한다.
[제공하는 기능]
브라우저를 통해 URL을 전시
메일 클라이언트 실행
기본 응용프로그램을 통해서 파일을 열거나 편집한다.
코드는 위쪽 브라우저 열기에서 확인할 수 있다.
isDesktopSupported()
메서드를 사용해서 Desktop API르 사용할 수 있는지 여부를 확인해야 한다.
라이브러리를 사용할 수 없는 경우에 false를 반환한다.
👏 참고사이트
https://jinseongsoft.tistory.com/145
https://goodsource.tistory.com/663
✔ URI (Uniform Resource Identifier : 통합 자원 식별자)
URI는 URL을 일반화한 것이다.
URI가 URL클래스와 구별된다.
- URI 클래스는 순수하게 리소스를 식별하고 URI를 분석하는 기능만 제공한다.
- URI 클래스는 URL 클래스보다 표준을 더 잘 따른다.
- URI 객체는 상대 URI를 표현할 수 있다.URI에는 URL과 URN 두 가지가 있다.
URN은 리소스가 어디에 위치해 있든 찾을 수 있는 방법이다. 리소스에 고유한 이름을 부여해서 구분하는 방식이다.
URL은 특정 서버의 한 리소스에 대해 구체적인 위치를 서술하는 방법이다.
URL 클래스는 네트워크 전송을 위한 애플리케이션 계의 프로토콜 객체이다. 즉, 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.
URI 클래스는 순수하게 문자열 분석과 조작을 위한 객체이다.
👏 참고사이트
https://lovestudycom.tistory.com/entry/URL%EA%B3%BC-URI
😊정리
클래스를 많이 알아야 한다.
원하는 클래스가 있는지 찾고 검색해야 한다.
클래스를 얼마나 많이 아는지에 따라 만드는 프로젝트의 속도와 질이 달라진다.
클래스를 잘 사용하고 검색하는 법을 익히자.
'JAVA > 멀티스레드, 이벤트' 카테고리의 다른 글
java) Swing 코드 연습 ( JFrame 사용 ) + Mnemonic (0) 2024.05.29 java) 메모장 만들기 2) 나가기, 복사, 붙여 넣기, 잘라내기, 삭제, 글꼴크기, 모달창 띄우기 (0) 2024.05.28 java) 메모장 만들기 1) 메뉴 + 열기 + 저장 (0) 2024.05.27 java 리스너 이벤트 처리 방법 (익명 객체, 내부 클래스) (0) 2024.05.24 GUI / Layout / awt/ 컴포넌트 / 컨테이너 개념정리 (0) 2024.05.23