我在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);
}
});
我不确定在这种情况下是否有任何区别,但通常您应该指定对话框应该显示在哪个组件上(JOptionPane.showMessageDialog中的null)。我有一些不必要的问题没有这样做前一段时间