Pergunta

Eu tenho um controle do painel pouco, apenas um pequeno aplicativo que eu fiz. Gostaria de minimizar / colocou-o painel de controle para cima / baixo com as systemicons, juntamente com a vida da bateria, data, redes etc.

Qualquer pessoa que pode me dar uma pista, link para um tutorial ou algo para ler?

Foi útil?

Solução

A partir do Java 6, este é suportado no SystemTray e TrayIcon classes. SystemTray tem uma bastante extensa exemplo em suas Javadocs:

TrayIcon trayIcon = null;
if (SystemTray.isSupported()) {
    // get the SystemTray instance
    SystemTray tray = SystemTray.getSystemTray();
    // load an image
    Image image = Toolkit.getDefaultToolkit().getImage("your_image/path_here.gif");
    // create a action listener to listen for default action executed on the tray icon
    ActionListener listener = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // execute default action of the application
            // ...
        }
    };
    // create a popup menu
    PopupMenu popup = new PopupMenu();
    // create menu item for the default action
    MenuItem defaultItem = new MenuItem(...);
    defaultItem.addActionListener(listener);
    popup.add(defaultItem);
    /// ... add other items
    // construct a TrayIcon
    trayIcon = new TrayIcon(image, "Tray Demo", popup);
    // set the TrayIcon properties
    trayIcon.addActionListener(listener);
    // ...
    // add the tray image
    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        System.err.println(e);
    }
    // ...
} else {
    // disable tray option in your application or
    // perform other actions
    ...
}
// ...
// some time later
// the application state has changed - update the image
if (trayIcon != null) {
    trayIcon.setImage(updatedImage);
}
// ...

Você também pode verificar para fora este artigo , ou < a href = "http://blogs.oracle.com/CoreJavaTechTips/entry/getting_to_know_system_tray" rel = "noreferrer"> esta dica tecnologia .

Outras dicas

é muito simples

import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class SystemTrayDemo{

//start of main method
public static void main(String []args){
    //checking for support
    if(!SystemTray.isSupported()){
        System.out.println("System tray is not supported !!! ");
        return ;
    }
    //get the systemTray of the system
    SystemTray systemTray = SystemTray.getSystemTray();

    //get default toolkit
    //Toolkit toolkit = Toolkit.getDefaultToolkit();
    //get image 
    //Toolkit.getDefaultToolkit().getImage("src/resources/busylogo.jpg");
    Image image = Toolkit.getDefaultToolkit().getImage("src/images/1.gif");

    //popupmenu
    PopupMenu trayPopupMenu = new PopupMenu();

    //1t menuitem for popupmenu
    MenuItem action = new MenuItem("Action");
    action.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(null, "Action Clicked");          
        }
    });     
    trayPopupMenu.add(action);

    //2nd menuitem of popupmenu
    MenuItem close = new MenuItem("Close");
    close.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);             
        }
    });
    trayPopupMenu.add(close);

    //setting tray icon
    TrayIcon trayIcon = new TrayIcon(image, "SystemTray Demo", trayPopupMenu);
    //adjust to default size as per system recommendation 
    trayIcon.setImageAutoSize(true);

    try{
        systemTray.add(trayIcon);
    }catch(AWTException awtException){
        awtException.printStackTrace();
    }
    System.out.println("end of main");

}//end of main

}//end of class

Set apropriado caminho para imagem e, em seguida, executar o programa. t.y. :)

Este é o código que você pode usar para acessar e personalizar bandeja do sistema:

final TrayIcon trayIcon;

if (SystemTray.isSupported()) {

SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("tray.gif");

MouseListener mouseListener = new MouseListener() {

    public void mouseClicked(MouseEvent e) {
        System.out.println("Tray Icon - Mouse clicked!");                 
    }

    public void mouseEntered(MouseEvent e) {
        System.out.println("Tray Icon - Mouse entered!");                 
    }

    public void mouseExited(MouseEvent e) {
        System.out.println("Tray Icon - Mouse exited!");                 
    }

    public void mousePressed(MouseEvent e) {
        System.out.println("Tray Icon - Mouse pressed!");                 
    }

    public void mouseReleased(MouseEvent e) {
        System.out.println("Tray Icon - Mouse released!");                 
    }
};

ActionListener exitListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Exiting...");
        System.exit(0);
    }
};

PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(exitListener);
popup.add(defaultItem);

trayIcon = new TrayIcon(image, "Tray Demo", popup);

ActionListener actionListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        trayIcon.displayMessage("Action Event", 
            "An Action Event Has Been Performed!",
            TrayIcon.MessageType.INFO);
    }
};

trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(actionListener);
trayIcon.addMouseListener(mouseListener);

try {
    tray.add(trayIcon);
} catch (AWTException e) {
    System.err.println("TrayIcon could not be added.");
}

} else {

//  System Tray is not supported

}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top