Nimbus L&F - Change Background color of Progress Bar

后端 未结 2 1054
星月不相逢
星月不相逢 2020-12-11 22:40

i\'m developing a little GUI application with Java using Netbeans Editor. I\'ve put in a JFrame a simple Progress Bar. I\'m developing the project with JDK7

I want t

相关标签:
2条回答
  • 2020-12-11 23:15

    This is what I have done in the application I currently develop

    ColorUIResource colorResource = new ColorUIResource(Color.red.darker().darker());
    UIManager.put("nimbusOrange",colorResource);
    

    This simply changes the default orange color with something more appealing to the eyes and it changes it everywhere.

    0 讨论(0)
  • 2020-12-11 23:23
    1. maybe (Color and Font) issue talking about Nimbus Look and Feel

    2. have to check this thread

    3. value for

    ProgressBar[Disabled+Finished].foregroundPainter ProgressBar[Disabled+Indeterminate].foregroundPainter
    ProgressBar[Disabled].backgroundPainter ProgressBar[Disabled].foregroundPainter ProgressBar[Enabled+Finished].foregroundPainter ProgressBar[Enabled+Indeterminate].foregroundPainter ProgressBar[Enabled+Indeterminate].progressPadding ProgressBar[Enabled].backgroundPainter ProgressBar[Enabled].foregroundPainter

    . 4. maybe easiest for you will be to change nimbusOrange from the top of Nimbus defaults, but this change is everywhere,

    funny output to the GUI with changed Control Color, for example

    UIManager.getLookAndFeelDefaults().put("nimbusOrange", (new Color(127, 255, 191)));

    . 5. for example

    enter image description here

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.EventQueue;
    import java.awt.Graphics2D;
    import javax.swing.*;
    
    public class MyPopupWithNimbus {
    
        public MyPopupWithNimbus() {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(200, 200);
            JPanel panel = new JPanel(new BorderLayout());
            panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
            JList list = new JList();
            panel.add(list);
            JProgressBar progress = new JProgressBar();
            progress.setStringPainted(true);
            progress.setString("60 pct");
            progress.setValue(60);
            frame.add(panel);
            frame.add(progress, BorderLayout.SOUTH);
            JPopupMenu menu = new JPopupMenu();
            menu.add(new JMenuItem("A"));
            menu.add(new JMenuItem("B"));
            menu.add(new JMenuItem("C"));
            JMenu jmenu = new JMenu("D");
            jmenu.add(new JMenuItem("E"));
            menu.add(jmenu);
            frame.setVisible(true);
            menu.show(frame, 50, 50);
        }
    
        public static void main(String[] args) {
    
            try {
                for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(laf.getName())) {
                        UIManager.setLookAndFeel(laf.getClassName());
                        UIManager.getLookAndFeelDefaults().put("nimbusOrange", (new Color(127, 255, 191)));
                        UIManager.getLookAndFeelDefaults().put("PopupMenu[Enabled].backgroundPainter",
                                new FillPainter(Color.ORANGE));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            EventQueue.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    MyPopupWithNimbus aa = new MyPopupWithNimbus();
                }
            });
        }
    }
    
    class FillPainter implements Painter<JComponent> {
    
        private final Color color;
    
        FillPainter(Color c) {
            color = c;
        }
    
        @Override
        public void paint(Graphics2D g, JComponent object, int width, int height) {
            g.setColor(color);
            g.fillRect(0, 0, width - 1, height - 1);
        }
    }
    
    0 讨论(0)
提交回复
热议问题