Estoy usando Nimbus ven y se sienten. Me tiene que cambiar el color de Fondo y color de primer plano de la ficha en JTabbedPane, pero el color no se establece en JTabbedPane. Traté de setForeground(), setForegroundAt(), setBackground() y setBackgroundAt() métodos pero no funciona.Este es mi código

 
público clase TabbedPaneDemo se extiende JFrame 
{ 
TabbedPaneDemo() 
{ 
prueba 
{ 
UIManager.setLookAndFeel("com.sol.java.el swing.plaf.nimbus.NimbusLookAndFeel"); 
} 
captura(Excepción ex) {}

setLayout(new BorderLayout()); setBounds(100, 100, 800, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTabbedPane jt = new JTabbedPane(); jt.addTab("Tab1", new JPanel()); jt.addTab("Tab2", new JPanel()); jt.addTab("Tab3", new JPanel()); jt.addTab("Tab4", new JPanel()); for( int i = 0; i < jt.getComponentCount(); i++) { jt.setForegroundAt(i, Color.RED); jt.setBackgroundAt(i, Color.BLACK); } add(jt); setVisible(true); } public static void main(String args[]) { new TabbedPaneDemo(); }

}

InformationsquelleAutor Ram | 2010-03-15

6 Comentarios

  1. 9

    Hay un par de cosas diferentes que usted puede hacer, dependiendo de la cantidad de control que desee sobre el color exacto. La forma más fácil es cambiar algunas de las propiedades de la clase UIManager para cambiar los colores que Nimbus deriva sus otros colores de. Jugué un poco con su código, y se encontró que si pongo el código siguiente después de la llamada a la clase UIManager.setLookAndFeel(), esta aproximación sería el rojo sobre negro de mirada que usted ha intentado en su ejemplo:

         UIManager.put("nimbusBase", new ColorUIResource(0, 0, 0));
         UIManager.put("textForeground", new ColorUIResource(255, 0, 0));

    Voy a dejar a usted en el experimento. Para obtener más información para experimentar con el, hay un buen artículo sobre la configuración de Nimbus aquí. Asegúrese de que usted mira su enlace titulado «Nimbus UIDefaults Lista de Propiedades». Fuera de sólo el masaje de los colores a algo similar a lo que usted desea, usted tendrá que empezar a hacer desordenado de cosas como la implementación de Pintor clases que hacen pintura personalizada.

  2. 3

    Odio tener que decirte esto, pero vas a tener un tiempo muy duro para conseguir el primer plano y colores de fondo cambiado. A diferencia de muchos de los componentes básicos (JTextField, JLabel, etc), el JTabbedPane ignora el primer plano y colores de fondo cuando se ajuste a la pintura. En su lugar, permite la interfaz de usuario delegado (según lo determinado por la Apariencia actual) para elegir los colores.

    Algunos se ven y se Siente permiten temas de color (La sustancia viene a la mente), pero Nimbus parece tener los valores de color codificados en la pintura de los delegados.

    Más que probable que usted necesitará para implementar su propia interfaz de usuario delegado sede fuera de la Nimbus es. Ver aquí para obtener más información. Va a ser un gran dolor de cabeza, así que pregúntate ¿cuánto quieres que los colores cambiados.

    Por último, si alguien le dice que usted simplemente subclase JTabbedPane y fijar los colores en su propio «paintComponent» método, lo ignoran. Luego se hace responsable por la pintura de todo el componente, y perderá el Nimbus-como los atributos visuales.

    • En la segunda Jason – me he pasado días tratando de conseguir JTabbedPane en Nimbus para mostrar las Pestañas un poco más oscuro (porque consiguen casi blanco cuando se especifica una base de luz de colores). Muy frustrante, que se necesita un grado en Nimbus interna de…
  3. 2

    JTabbedPane obras al agregar componentes a la misma, e.g agregar 5 JPanels y que serán en forma de fichas.

    • He añadido los paneles de JTabbedPane. Este es mi código de JTabbedPane jt = new JTabbedPane(); jt.pestaña add(«Tab1», new JPanel()); jt.pestaña add(«Tab2», new JPanel()); jt.pestaña add(«Tab3», new JPanel()); jt.pestaña add(«Tab4», new JPanel()); jt.setForeground(Color.ROJO); jt.setBackground(Color.NEGRO); jf.agregar(jt); //suma de JTabbedPane a JFrame
  4. 2

    Lo siento por mi inglés.

    He intentado resolver este problema 2 días.. Hay «evitar» a resolver.

    Necesidad ficha conjunto de componentes. Y, a continuación, establecer el color para este componente.

    /*
      ...
      Setting LAF Nimbus
      ...
    */
    
    JTabbedPane tp = new JTabbedPane();
    
    /*
       ...
       add tabs in TabbedPane
       ...
    */

    a continuación, para especificada pestañas necesita hacer:

            JLabel title = new JLabel(tp.getTitleAt(tabIndex));
            title.setForeground(Color.RED);
            tp.setTabComponentAt(tabIndex, title);

    OMG!! su trabajo!

    • +1 bueno – pero tenga en cuenta que no trabajo para el color de fondo.
  5. 1

    Si quieres cambiar el contenido real, hay dos métodos útiles del panel con fichas: setForegroundAt y setBackgroundAt. Usted puede simplemente bucle a través de todas las pestañas y llamar a estos:

    for (int i = 0; i < pane.getTabCount(); i++) {
        pane.setForegroundAt(i, foregroundColor);
        pane.setBackgroundAt(i, backgroundColor);
    }

    También puede utilizar getComponentAt así, de manera similar:

    for (int i = 0; i < pane.getTabCount(); i++) {
        pane.getComponentAt(i).setForeground(foregroundColor);
        pane.getComponentAt(i).setBackground(backgroundColor);
    }

    El segundo enfoque es más flexible, más tarde, puede hacer cosas más complejas a todos los componentes por medio de un código como este.

  6. 1

    Realidad no es cierto

    new JTabbedPane().setUI(new YourUI());

    y, a continuación, crear su sencilla interfaz de usuario

    public class YourUI extends BasicTabbedPaneUI{
    
    .....
    
    private class ScrollableTabPanel extends JPanel implements UIResource {
    public ScrollableTabPanel() {
        setLayout(null);
    }
    
    public void paintComponent(Graphics g) {
    
    super.paintComponent(g);
    
    g.setColor(Color.red);
    g.fillRect(tabPane.getBounds());            
    
            }
        }
    
    ....
    
    }

    Jan Cajthaml

    No es como debe ser similar (no importa el QuadSpline pestañas y cerca de bares eso es otro de los complementos de mi interfaz de usuario de la aplicación), mi reputación aquí no es así, hay un enlace a la imagen

    http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash3/166028_2974620064454_896181702_n.jpg

Dejar respuesta

Please enter your comment!
Please enter your name here