public boolean showEventMessage(final List<CalendarEventData> calendarEventList) {

        if (SwingUtilities.isEventDispatchThread()) {
            StringBuilder message  = new StringBuilder();

            boolean warning = false;
            for (CalendarEventData calendarEvent: calendarEventList) {

                message.append(calendarEvent.getTitle());


                if (calendarEvent.getLocation().length() != 0) {
                    message.append("@");
                    message.append(calendarEvent.getLocation());
                }
                message.append("が\n");
                message.append(TIME_FORMAT.format(calendarEvent.getStartDate()));
                message.append("に開始です。");

                if (calendarEvent.isWarning()) {
                    message.append("\n");
                    message.append("すでに開始時刻を過ぎています！");
                    warning = true;
                }
            }

            if (warning) {
                trayIcon.displayMessage(null, message.toString(),  TrayIcon.MessageType.WARNING);
                System.out.println("アイコンメッセージ表示");
            } else {
                trayIcon.displayMessage(null, message.toString(),  TrayIcon.MessageType.INFO);
                System.out.println("アイコンメッセージ表示");
            }

            boolean ret = super.showEventMessage(calendarEventList);
            return ret;
        } else {
            final List<Boolean> result = new ArrayList<Boolean>();
            // イベントディスパッチではない場合はイベントディスパッチで呼びなおし
            try {
                SwingUtilities.invokeAndWait(new Runnable() {
                    @Override
                    public void run() {
                        result.add(showEventMessage(calendarEventList));
                    }
                });
            } catch (InterruptedException e) {
                // 例外はスルー
            } catch (InvocationTargetException e) {
                // 例外はスルー
            }
            // 念のためサイズ確認してリターン
            if (result.size() != 0) {
                return result.get(0);
            }
            return true;
        }
    }