프로그래밍/② JAVA(자바) 프로젝트

② JAVA(자바) 프로젝트-2 전 방법과 다른 방법으로 시스템트레이 조작 == System tray operation in a different way than before

ronul 2017. 4. 22. 10:00
300x250

② JAVA 프로젝트-1과 다른 방식으로 시스템트레이에 추가하는 방법입니다.

간단한 설명으로 주석처리 해놨습니다.

 

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;


public class SystemTrayTest implements ActionListener {
 //선언
 private SystemTray systemTray;
 private PopupMenu Popup;
 private MenuItem ItemNew, ItemOpen, ItemExit;
 //예외처리
 public SystemTrayTest() {
  try {
   inSystemTray();
  } catch (AWTException e) {
   System.out.println(e.toString());
   System.exit(0);
  }
 }

 public void inSystemTray() throws AWTException {
  if (SystemTray.isSupported()) {
   //PopupMenu생성
   Popup = new PopupMenu();
   //MenuItem 추가
   ItemNew = new MenuItem("New");
   ItemOpen = new MenuItem("Open");
   ItemExit = new MenuItem("Exit");
   //리스너추가
   ItemNew.addActionListener(this);
   ItemOpen.addActionListener(this);
   ItemExit.addActionListener(this);
   //팝업메뉴추가
   Popup.add(ItemNew);
   Popup.addSeparator();
   Popup.add(ItemOpen);
   
   Popup.addSeparator();
   Popup.add(ItemExit);
   //이미지 가져온후 추가
   Image image = Toolkit.getDefaultToolkit().getImage("c:/penguin.png");
   TrayIcon trayIcon = new TrayIcon(image, "Java 6.0 SystemTrayIcon Test", Popup);
   trayIcon.setImageAutoSize(true);

 

 

 

 

 

   systemTray = SystemTray.getSystemTray();
   systemTray.add(trayIcon);
  }
 }

 @Override
 public void actionPerformed(ActionEvent ae) { //클릭시 메시지창띄움
  if (ae.getSource() == ItemNew) {
   showMes("Newfile", "파일생성.");
  } else if (ae.getSource() == ItemOpen) {
   showMes("Openfile", "파일열기.");
  } else if (ae.getSource() == ItemExit) {
   showMes("시스템트레이 종료", "트레이종료.");
   System.exit(0);
  }
 }

 private void showMes(String title, String message) { //메시지 출력시
  JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE);
 }

 public static void main(String[] args) {
  SystemTrayTest Start = new SystemTrayTest();
 }
}

300x250