displayMessage而不是showMessageDialog

时间:2015-09-17 20:27:35

标签: java netbeans

我正在用java创建我的第一个程序(在Netbeans中),它基本上是一个带有弹出菜单的SystemTray图标,每个项目都有不同的功能。在下面的项目中,我希望在保存图像之后使用“displayMessage”而不是“showMessageDialog”。我试过trayIcon.displayMessage("Message", "message", TrayIcon.MessageType.INFO);但它不起作用,我不知道为什么,你有什么想法吗?

      item5.addActionListener(new ActionListener () {
        @Override

        public void actionPerformed(ActionEvent e) {

            BufferedImage image = null;

            try {
                Thread.currentThread().sleep(500);
            } catch (InterruptedException ex) {
                Logger.getLogger(SupTray.class.getName()).log(Level.SEVERE, null, ex);
            }

            try {
                image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
            } catch (AWTException ex) {
                Logger.getLogger(SupTray.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy_HH.mm.ss");
                Calendar now = Calendar.getInstance();
                ImageIO.write(image, "png", new File(System.getProperty("user.home")+"\\Desktop\\"+formatter.format(now.getTime())+".png"));
            } catch (IOException ex) {
                Logger.getLogger(SupTray.class.getName()).log(Level.SEVERE, null, ex);
            }
            JOptionPane.showMessageDialog(null, "L'immagine è stata salvata nel desktop.", "Cattura schermata", JOptionPane.INFORMATION_MESSAGE);
        }

    });   

1 个答案:

答案 0 :(得分:0)

我不确定它在这种情况下是否有任何区别,但通常你应该指定对话框应该显示的组件(在JOptionPane.showMessageDialog中为null)。 我不久前有一些不必要的问题。