una - java cambiar icono aplicacion
Establecer la imagen del icono de la aplicaciĆ³n predeterminada en Java swing en OS X (5)
como he pasado por su error está relacionado con MacOS jdk que ha comenzado a aparecer después de la actualización a 10.7.4
repasa esto si esto te ayuda a:
Estoy tratando de configurar la imagen del icono para un archivo Jar:
setIconImage(new ImageIcon(getClass().getResource("logo.png")).getImage());
Cuando se ejecuta en Mac OS X 10.7.4, aparece el siguiente error:
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
setIconImage
no establece el ícono jar. Configurará el ícono de cómo se verá la ventana minimizada para ese JFrame
. El ícono de jar (que controla el ícono del buscador y el ícono de la aplicación Dock) no se puede configurar en el archivo jar en sí. Acaba de obtener el icono predeterminado proporcionado por el sistema operativo. Deberá envolverlo usando algo como JarBundler para OS X o Launch4J para Windows.
Puede configurar el icono del dock de la aplicación mientras se ejecuta su aplicación, consulte com.apple.eawt.Application.setDockIconImage
. Sin embargo, no es perfecto, porque cuando haces doble clic en tu jar, se inicia en el dock usando el ícono de java genérico y solo cambia a tu ícono personalizado después de un rebote o dos cuando el código java comienza a ejecutarse. Además, no creo que establezca el ícono de dock para un jar que no se está ejecutando (no es que puedas arrastrar un archivo jar al dock de todos modos, no parece funcionar para mí).
Aquí hay un código que muestra las diferentes imágenes que puede establecer:
import com.apple.eawt.Application;
import javax.swing.*;
class SetIcon extends JFrame {
SetIcon() {
setIconImage(new ImageIcon("doc.png").getImage());
Application.getApplication().setDockIconImage(
new ImageIcon("app.png").getImage());
}
public static void main(String args[]) {
SetIcon s = new SetIcon();
s.setVisible(true);
}
}
Solo para agregar mi solución final para agregar un icono de Dock de MacOSX en una aplicación de Java puro:
public boolean exists(String className)
{
try {
Class.forName( className, false, null );
return true;
}
catch (ClassNotFoundException exception) {
return false;
}
}
public void setIcon( BufferedImage icn )
{
if ( exists( "com.apple.eawt.Application" ) )
{
com.apple.eawt.Application.getApplication().setDockIconImage( icn );
}
}
Esto garantiza silenciosamente que la clase esté disponible y ejecuta el método setDockIconImage()
. Funciona muy bien para mí y no interfiere con otras plataformas.
java -Xdock: icon = / path / myIcon.png myApp
Puede colocar su archivo .icns
en el directorio Contents/Resources
del paquete de aplicaciones y hacer referencia a él en su archivo Info.plist
. Por ejemplo, una entrada <dict>
de este formulario hace referencia a un archivo llamado ApplicationName.icns
:
<key>CFBundleIconFile</key>
<string>ApplicationName.icns</string>
Algunos detalles relacionados se mencionan aquí .