public class java.awt.SystemTray
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.awt.SystemTray
super_class: java.lang.Object
{
private static java.awt.SystemTray systemTray;
descriptor: Ljava/awt/SystemTray;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private int currentIconID;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private transient java.awt.peer.SystemTrayPeer peer;
descriptor: Ljava/awt/peer/SystemTrayPeer;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private static final java.awt.TrayIcon[] EMPTY_TRAY_ARRAY;
descriptor: [Ljava/awt/TrayIcon;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
anewarray java.awt.TrayIcon
putstatic java.awt.SystemTray.EMPTY_TRAY_ARRAY:[Ljava/awt/TrayIcon;
1: new java.awt.SystemTray$1
dup
invokespecial java.awt.SystemTray$1.<init>:()V
2: invokestatic sun.awt.AWTAccessor.setSystemTrayAccessor:(Lsun/awt/AWTAccessor$SystemTrayAccessor;)V
3: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.awt.SystemTray.currentIconID:I
2: aload 0
invokevirtual java.awt.SystemTray.addNotify:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/SystemTray;
public static java.awt.SystemTray getSystemTray();
descriptor: ()Ljava/awt/SystemTray;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: invokestatic java.awt.SystemTray.checkSystemTrayAllowed:()V
1: invokestatic java.awt.GraphicsEnvironment.isHeadless:()Z
ifeq 3
2: new java.awt.HeadlessException
dup
invokespecial java.awt.HeadlessException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
invokestatic java.awt.SystemTray.initializeSystemTrayIfNeeded:()V
4: invokestatic java.awt.SystemTray.isSupported:()Z
ifne 8
5: new java.lang.UnsupportedOperationException
dup
6: ldc "The system tray is not supported on the current platform."
7: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isSupported();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
astore 0
start local 0 1: aload 0
instanceof sun.awt.SunToolkit
ifeq 4
2: invokestatic java.awt.SystemTray.initializeSystemTrayIfNeeded:()V
3: aload 0
checkcast sun.awt.SunToolkit
invokevirtual sun.awt.SunToolkit.isTraySupported:()Z
ireturn
4: StackMap locals: java.awt.Toolkit
StackMap stack:
aload 0
instanceof sun.awt.HeadlessToolkit
ifeq 6
5: aload 0
checkcast sun.awt.HeadlessToolkit
invokevirtual sun.awt.HeadlessToolkit.isTraySupported:()Z
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 toolkit Ljava/awt/Toolkit;
public void add(java.awt.TrayIcon);
descriptor: (Ljava/awt/TrayIcon;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "adding null TrayIcon"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aload 0
dup
astore 5
monitorenter
6: getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
invokevirtual java.awt.SystemTray.getTrayIcons:()[Ljava/awt/TrayIcon;
astore 2
7: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/TrayIcon;
invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Vector
astore 4
8: aload 4
ifnonnull 12
9: new java.util.Vector
dup
iconst_3
invokespecial java.util.Vector.<init>:(I)V
astore 4
10: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/TrayIcon;
aload 4
invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: goto 14
StackMap locals: java.awt.SystemTray java.awt.TrayIcon java.awt.TrayIcon[] java.awt.TrayIcon[] java.util.Vector java.awt.SystemTray
StackMap stack:
12: aload 4
aload 1
invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
ifeq 14
13: new java.lang.IllegalArgumentException
dup
ldc "adding TrayIcon that is already added"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 4
aload 1
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
15: getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
invokevirtual java.awt.SystemTray.getTrayIcons:()[Ljava/awt/TrayIcon;
astore 3
16: aload 1
aload 0
dup
getfield java.awt.SystemTray.currentIconID:I
iconst_1
iadd
dup_x1
putfield java.awt.SystemTray.currentIconID:I
invokevirtual java.awt.TrayIcon.setID:(I)V
17: aload 5
monitorexit
18: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
19: aload 5
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.awt.TrayIcon.addNotify:()V
22: goto 26
StackMap locals:
StackMap stack: java.awt.AWTException
23: astore 5
start local 5 24: aload 4
aload 1
invokevirtual java.util.Vector.remove:(Ljava/lang/Object;)Z
pop
25: aload 5
athrow
end local 5 26: StackMap locals:
StackMap stack:
aload 0
ldc "trayIcons"
aload 2
aload 3
invokevirtual java.awt.SystemTray.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
27: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/awt/SystemTray;
0 28 1 trayIcon Ljava/awt/TrayIcon;
3 28 2 oldArray [Ljava/awt/TrayIcon;
4 28 3 newArray [Ljava/awt/TrayIcon;
5 28 4 icons Ljava/util/Vector<Ljava/awt/TrayIcon;>;
24 26 5 e Ljava/awt/AWTException;
Exception table:
from to target type
6 18 19 any
19 20 19 any
21 22 23 Class java.awt.AWTException
Exceptions:
throws java.awt.AWTException
MethodParameters:
Name Flags
trayIcon
public void remove(java.awt.TrayIcon);
descriptor: (Ljava/awt/TrayIcon;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aload 0
dup
astore 4
monitorenter
5: getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
invokevirtual java.awt.SystemTray.getTrayIcons:()[Ljava/awt/TrayIcon;
astore 2
6: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/TrayIcon;
invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Vector
astore 5
start local 5 7: aload 5
ifnull 8
aload 5
aload 1
invokevirtual java.util.Vector.remove:(Ljava/lang/Object;)Z
ifne 10
8: StackMap locals: java.awt.SystemTray java.awt.TrayIcon java.awt.TrayIcon[] java.awt.TrayIcon[] java.awt.SystemTray java.util.Vector
StackMap stack:
aload 4
monitorexit
9: return
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.awt.TrayIcon.removeNotify:()V
11: getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
invokevirtual java.awt.SystemTray.getTrayIcons:()[Ljava/awt/TrayIcon;
astore 3
end local 5 12: aload 4
monitorexit
13: goto 16
StackMap locals: java.awt.SystemTray java.awt.TrayIcon java.awt.TrayIcon[] java.awt.TrayIcon[] java.awt.SystemTray
StackMap stack: java.lang.Throwable
14: aload 4
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 0
ldc "trayIcons"
aload 2
aload 3
invokevirtual java.awt.SystemTray.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/awt/SystemTray;
0 18 1 trayIcon Ljava/awt/TrayIcon;
3 18 2 oldArray [Ljava/awt/TrayIcon;
4 18 3 newArray [Ljava/awt/TrayIcon;
7 12 5 icons Ljava/util/Vector<Ljava/awt/TrayIcon;>;
Exception table:
from to target type
5 9 14 any
10 13 14 any
14 15 14 any
MethodParameters:
Name Flags
trayIcon
public java.awt.TrayIcon[] getTrayIcons();
descriptor: ()[Ljava/awt/TrayIcon;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/TrayIcon;
invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Vector
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
aload 1
invokevirtual java.util.Vector.size:()I
anewarray java.awt.TrayIcon
invokevirtual java.util.Vector.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.awt.TrayIcon[]
areturn
3: StackMap locals: java.util.Vector
StackMap stack:
getstatic java.awt.SystemTray.EMPTY_TRAY_ARRAY:[Ljava/awt/TrayIcon;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/SystemTray;
1 4 1 icons Ljava/util/Vector<Ljava/awt/TrayIcon;>;
public java.awt.Dimension getTrayIconSize();
descriptor: ()Ljava/awt/Dimension;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.awt.SystemTray.peer:Ljava/awt/peer/SystemTrayPeer;
invokeinterface java.awt.peer.SystemTrayPeer.getTrayIconSize:()Ljava/awt/Dimension;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/SystemTray;
public synchronized void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
descriptor: (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.awt.SystemTray.getCurrentChangeSupport:()Ljava/beans/PropertyChangeSupport;
aload 1
aload 2
invokevirtual java.beans.PropertyChangeSupport.addPropertyChangeListener:(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/SystemTray;
0 4 1 propertyName Ljava/lang/String;
0 4 2 listener Ljava/beans/PropertyChangeListener;
MethodParameters:
Name Flags
propertyName
listener
public synchronized void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
descriptor: (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.awt.SystemTray.getCurrentChangeSupport:()Ljava/beans/PropertyChangeSupport;
aload 1
aload 2
invokevirtual java.beans.PropertyChangeSupport.removePropertyChangeListener:(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/SystemTray;
0 4 1 propertyName Ljava/lang/String;
0 4 2 listener Ljava/beans/PropertyChangeListener;
MethodParameters:
Name Flags
propertyName
listener
public synchronized java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.awt.SystemTray.getCurrentChangeSupport:()Ljava/beans/PropertyChangeSupport;
aload 1
invokevirtual java.beans.PropertyChangeSupport.getPropertyChangeListeners:(Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/SystemTray;
0 1 1 propertyName Ljava/lang/String;
MethodParameters:
Name Flags
propertyName
private void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnull 2
aload 3
ifnull 2
aload 2
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.awt.SystemTray.getCurrentChangeSupport:()Ljava/beans/PropertyChangeSupport;
aload 1
aload 2
aload 3
invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/SystemTray;
0 4 1 propertyName Ljava/lang/String;
0 4 2 oldValue Ljava/lang/Object;
0 4 3 newValue Ljava/lang/Object;
MethodParameters:
Name Flags
propertyName
oldValue
newValue
private synchronized java.beans.PropertyChangeSupport getCurrentChangeSupport();
descriptor: ()Ljava/beans/PropertyChangeSupport;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/SystemTray;
invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.beans.PropertyChangeSupport
1: astore 1
start local 1 2: aload 1
ifnonnull 5
3: new java.beans.PropertyChangeSupport
dup
aload 0
invokespecial java.beans.PropertyChangeSupport.<init>:(Ljava/lang/Object;)V
astore 1
4: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
ldc Ljava/awt/SystemTray;
aload 1
invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: java.beans.PropertyChangeSupport
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/SystemTray;
2 6 1 changeSupport Ljava/beans/PropertyChangeSupport;
synchronized void addNotify();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.awt.SystemTray.peer:Ljava/awt/peer/SystemTrayPeer;
ifnonnull 7
1: invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
astore 1
start local 1 2: aload 1
instanceof sun.awt.SunToolkit
ifeq 5
3: aload 0
invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
checkcast sun.awt.SunToolkit
aload 0
invokevirtual sun.awt.SunToolkit.createSystemTray:(Ljava/awt/SystemTray;)Ljava/awt/peer/SystemTrayPeer;
putfield java.awt.SystemTray.peer:Ljava/awt/peer/SystemTrayPeer;
4: goto 7
StackMap locals: java.awt.Toolkit
StackMap stack:
5: aload 1
instanceof sun.awt.HeadlessToolkit
ifeq 7
6: aload 0
invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
checkcast sun.awt.HeadlessToolkit
aload 0
invokevirtual sun.awt.HeadlessToolkit.createSystemTray:(Ljava/awt/SystemTray;)Ljava/awt/peer/SystemTrayPeer;
putfield java.awt.SystemTray.peer:Ljava/awt/peer/SystemTrayPeer;
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/awt/SystemTray;
2 7 1 toolkit Ljava/awt/Toolkit;
static void checkSystemTrayAllowed();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
getstatic sun.security.util.SecurityConstants$AWT.ACCESS_SYSTEM_TRAY_PERMISSION:Ljava/security/Permission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 security Ljava/lang/SecurityManager;
private static void initializeSystemTrayIfNeeded();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc Ljava/awt/SystemTray;
dup
astore 0
monitorenter
1: getstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
ifnonnull 3
2: new java.awt.SystemTray
dup
invokespecial java.awt.SystemTray.<init>:()V
putstatic java.awt.SystemTray.systemTray:Ljava/awt/SystemTray;
3: StackMap locals: java.lang.Class
StackMap stack:
aload 0
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 0
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
1 4 5 any
5 6 5 any
}
SourceFile: "SystemTray.java"
NestMembers:
java.awt.SystemTray$1
InnerClasses:
java.awt.SystemTray$1
public abstract SystemTrayAccessor = sun.awt.AWTAccessor$SystemTrayAccessor of sun.awt.AWTAccessor
public AWT = sun.security.util.SecurityConstants$AWT of sun.security.util.SecurityConstants