Estoy usando el siguiente código,

UIManager.put("JFrame.activeTitleBackground", Color.red);

para cambiar el color de barra de herramientas en el JFrame. Pero no funcionó.

Es posible cambiar el color de la barra de título en JFrame?

  • Se ve como dos chicos que trabajan en la misma tarea es problema para mí. Coincidencia?
  • Tal vez no a la tarea, pero sin duda el mismo problema!
  • Espere un minuto – un hombre quiere cambiar el color de la barra de título, pero Venkats está hablando acerca de la barra de herramientas que comúnmente se entiende como el área debajo de los menús que contiene los botones principales («abrir», «guardar», «copiar», «pegar», etc…)
  • usted no puede cambiar la «barra de herramientas de un JFrame de color» o la «barra de título de ventana» de color?
InformationsquelleAutor Venkat | 2010-03-20

5 Comentarios

  1. 4

    No es posible. El nivel superior JFrame es controlado por el look & feel del sistema operativo subyacente.

    Usted PUEDE cambiar el color de un InternalFrame.

  2. 7
    //source : javax/swing/plaf/metal/MetalTitlePane.java
    import javax.swing.*;
    import javax.swing.plaf.*;
    import javax.swing.plaf.metal.*;
    public class TitleColor
    {
    public static void main_helper (String args[])
    {
    JFrame f = new JFrame ();
    f.setDefaultCloseOperation 
    (
    JFrame.DISPOSE_ON_CLOSE
    );
    f.setSize (300, 300);
    f.setLocationRelativeTo (null);
    f.setUndecorated ( true );
    f.getRootPane ().setWindowDecorationStyle
    (
    JRootPane.FRAME
    );
    JPanel panel = new JPanel ();
    panel.setBackground ( java.awt.Color.white );
    f.setContentPane ( panel );
    DefaultMetalTheme z =
    new DefaultMetalTheme ()
    {
    //inactive title color
    public ColorUIResource
    getWindowTitleInactiveBackground() 
    { 
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    //active title color
    public ColorUIResource
    getWindowTitleBackground() 
    { 
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    //start ActiveBumps
    public ColorUIResource 
    getPrimaryControlHighlight() 
    { 
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    public ColorUIResource 
    getPrimaryControlDarkShadow() 
    { 
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    public ColorUIResource 
    getPrimaryControl() 
    { 
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    //end ActiveBumps
    //start inActiveBumps
    public ColorUIResource 
    getControlHighlight ()
    {
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    public ColorUIResource 
    getControlDarkShadow ()
    {
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    public ColorUIResource 
    getControl ()
    {
    return new ColorUIResource 
    (java.awt.Color.orange); 
    }
    //end inActiveBumps
    };
    MetalLookAndFeel.setCurrentTheme
    (
    z
    );
    try
    {
    UIManager.setLookAndFeel
    (
    new MetalLookAndFeel ()
    );
    }
    catch (Exception e)
    {
    e.printStackTrace ();
    }   
    SwingUtilities.updateComponentTreeUI (f);
    f.setVisible (true);
    }
    public static void main (final String args[])
    {
    SwingUtilities.invokeLater
    (
    new Runnable ()
    {
    public void run ()
    {
    main_helper ( args );
    }
    }
    );
    }
    }
    • Buen ejemplo de ello. Sin embargo, esto no sólo cambia el color, pero se instala un nuevo LAF, lo que hace que la aplicación mirando como en los ’90. 🙂
  3. 3

    Para Windows10, en su método main (), se puede utilizar:

    UIDefaults uiDefaults = UIManager.getDefaults();
    uiDefaults.put("activeCaption", new javax.swing.plaf.ColorUIResource(Color.gray));
    uiDefaults.put("activeCaptionText", new javax.swing.plaf.ColorUIResource(Color.white));
    JFrame.setDefaultLookAndFeelDecorated(true);
    • Esto no funciona. En win7, el valor predeterminado de vidrio de título de la ventana se muestra.
    • Votaron por JFrame.setDefaultLookAndFeelDecorated(true);
  4. 1

    Creo que el objetivo es lograr una aplicación real de la mirada en Win10. Como no es posible cambiar el título de la ventana de color de verdad, la única manera es personalizar la ventana.

    Aunque los ejemplos de la instalación de una variante del Metal LAF da un buen ejemplo, me encontré con que este problema es más complicado. Un verdadero Win10 ventana tiene que tener win10 frontera transparente de la frontera (sombra) donde el usuario puede arrastrar para cambiar el tamaño. El título tiene que utilizar Win10 iconos, y se sitúa en la ventana de botones.

    Me gustaría f.setUndecorated(true); y a dibujar en mi propia, y establecer los márgenes de la ventana, de modo que el contenido va a trabajar de forma normal.

    (Letra pequeña: a pesar de que todos «sabemos» que se puede personalizar con Swing, con LAFs, en la vida real de la escritura de un LAF siempre es mucho más complicado que crear subclases y el dibujo de su propia decoración. Como un extra de molestia, la LAF la arquitectura no expresar todas las propiedades de un componente, y los «nativos» LAF está bastante lejos de los nativos de aspecto (por ejemplo, revisar el win7 desplegable) o la sensación (listas desplegables no se deslice hacia afuera, win7 listas desplegables no tiene pase, pero los botones). Oh, por no mencionar la falta de Ventanas-como componentes, tales como un decente Office 2016 de la cinta, o incluso un simple «alternar» de Win10. Realmente, usted no puede hacer mucho sin la cerveza su propia componentes.)

  5. 0
    UIManager.put("InternalFrame.activeTitleBackground", new ColorUIResource(Color.black ));
    UIManager.put("InternalFrame.activeTitleForeground", new ColorUIResource(Color.WHITE));
    UIManager.put("InternalFrame.titleFont", new Font("Dialog", Font.PLAIN, 11));
    • OP está pidiendo el cambio de JFrame colores. La respuesta es para el interno marcos.

Dejar respuesta

Please enter your comment!
Please enter your name here