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