bom dia a todos!!!
pessoal, estou fazendo uns testes com uns programas no Sistray e ele tá funcionando, aparecem os menus de saída e tal, tudo como tem que ser…
beleza…
aí, lanço um while com sleep para a cada tantos segundos ele executar determinadas tarefas e tal…beleza…isso também funciona(ainda estou construindo e está bem rustico, mas a mecânica parece correta)
beleza…
só que apesar do código funcionar e o programa aparecer os menus somem…
é o único erro que notei até agora…
bom, aí, ia fazer o seguinte , lançar uma variável no começo da classe(main) e dar o valor para ela no construtor, mas não funcionou…queria umas dicas para resolver isso…estou tentando usar a lógica de php mas sem sucesso(ok, eu sei, java é java, e php e php, mas mesmo assim, não custa tentar né?)
bom, deixa eu parar de digitar e lançar o código aí para vocês verem…
package misc;
/*
* TrayIconDemo.java
*/
import classes.Inicio;
import classes.Varreduras;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
public class Systray_Teste extends Thread{
int valorDeretorno;
public static void main(String[] args) {
/* Use an appropriate Look and Feel */
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); /*UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");*/
}
catch (UnsupportedLookAndFeelException ex) {}
catch (IllegalAccessException ex) {}
catch (InstantiationException ex) {}
catch (ClassNotFoundException ex) {}
/* Turn off metal's use of bold fonts */
UIManager.put("swing.boldMetal", Boolean.FALSE);
//Schedule a job for the event-dispatching thread:
//adding TrayIcon.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
///aqui e o final do construtor dessa classe
}
@SuppressWarnings("SleepWhileInLoop")
private static void createAndShowGUI() {
//Check the SystemTray support
if (!SystemTray.isSupported()) {
System.out.println("SystemTray is not supported");
return;
}
final PopupMenu popup = new PopupMenu();
final TrayIcon trayIcon = new TrayIcon(createImage("images/icon.gif", "tray icon"));
final SystemTray tray = SystemTray.getSystemTray();
// Create a popup menu components
MenuItem aboutItem = new MenuItem("About");
Menu displayMenu = new Menu("Display");
/*******************************************/
MenuItem errorItem = new MenuItem("Erro");
MenuItem warningItem = new MenuItem("Alerta");
MenuItem exitItem = new MenuItem("Exit");
/*******************************************/
//Add components to popup menu
popup.add(aboutItem);
popup.add(displayMenu);
displayMenu.add(errorItem);
displayMenu.add(warningItem);
popup.add(exitItem);
trayIcon.setPopupMenu(popup);
try {tray.add(trayIcon);} catch (AWTException e) {System.out.println("TrayIcon could not be added."); return; }
trayIcon.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null,"This dialog box is run from System Tray");}});
aboutItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(null,"This dialog box is run from the About menu item");}
});
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/*esse é o trecho do código que tá me dando o problema...*/
Inicio inicioClass = new Inicio();
String operadorSistema = inicioClass.nomeDefinido();
String Pc =inicioClass.PC();
trayIcon.displayMessage("sistema TESTE", "bem-vindo ", TrayIcon.MessageType.ERROR); /*mensagem quando o programa for acionado!*/
///+++++++++++++++++++++++++++++++++++
int valor;
valor=0;
while(valor < 100000)
{
try {
Thread.sleep(10000);
trayIcon.displayMessage("sistema de systray", "Teste de thread "+valor, TrayIcon.MessageType.ERROR);
} catch (InterruptedException ex) {
Logger.getLogger(Systray_Teste.class.getName()).log(Level.SEVERE, null, ex);
}
valor++;
}
///+++++++++++++++++++++++++++++++++++
/*esse é o trecho do código que tá me dando o problema...*/
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++inicio dos sistema+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MenuItem item = (MenuItem)e.getSource();//TrayIcon.MessageType type = null;
System.out.println(item.getLabel());
if("Erro".equals(item.getLabel()))
{/*type = TrayIcon.MessageType.ERROR;*/trayIcon.displayMessage("Ops!","deu um erro!", TrayIcon.MessageType.ERROR);}
else if
("Alerta".equals(item.getLabel()))
{/*type = TrayIcon.MessageType.WARNING;*/trayIcon.displayMessage("Novo Cliente na produção", "Fulano...você teve um cliente convertido as 15:32 de hoje", TrayIcon.MessageType.WARNING); }
}
};
errorItem.addActionListener(listener);
warningItem.addActionListener(listener);
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}
});
}
//Obtain the image URL
protected static Image createImage(String path, String description) {
URL imageURL = Systray_Teste.class.getResource(path);
if (imageURL == null) {
System.err.println("Resource not found: " + path);
return null;
} else {
return (new ImageIcon(imageURL, description)).getImage();
}
}
}
enfim, pessoal, o que sugerem porque o menu tá sumindo?