java进度条字体颜色_java – Nimbus L&F – 改变进度条的背景颜色

我正在使用Netbeans Editor使用Java开发一个小的GUI应用程序.

我在JFrame中添加了一个简单的进度条.

我正在用JDK7开发这个项目

我想将背景颜色从默认橙色更改为个人颜色.我已经尝试了颜色变化的所有属性但是当我运行程序时颜色仍然相同.

我已经尝试过了

ProgressBar1.setBackground(new java.awt.Color(0,204,255));

UIManager.put("ProgressBar.background", Color.YELLOW);

UIManager.put("ProgressBar.foreground", Color.MAGENTA);

UIManager.put("ProgressBar.selectionBackground", Color.red);

UIManager.put("ProgressBar.selectionForeground", Color.green);

相同的结果…..背景总是橙色

这是我的测试项目的代码

public class Frame extends javax.swing.JFrame

{

public Frame()

{

initComponents();

}

@SuppressWarnings("unchecked")

//

private void initComponents() {

jProgressBar1 = new javax.swing.JProgressBar();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jProgressBar1.setBackground(new java.awt.Color(0, 204, 255));

jProgressBar1.setValue(75);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

pack();

}//

public static void main(String args[])

{

try

{

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

//

/*

* Create and display the form

*/

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Frame().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JProgressBar jProgressBar1;

// End of variables declaration

}

橙色……

编辑

使用以下代码

UIManager.getLookAndFeelDefaults().put("ProgressBar[Enabled].backgroundPainter", new FillPainter(Color.MAGENTA));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Disabled].backgroundPainter", new FillPainter(Color.MAGENTA));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Enabled+Indeterminate].progressPadding", new FillPainter(Color.ORANGE));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Enabled].foregroundPainter", new FillPainter(Color.GREEN));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Disabled].foregroundPainter", new FillPainter(Color.GREEN));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Enabled+Finished].foregroundPainter", new FillPainter(Color.GREEN));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Disabled+Finished].foregroundPainter", new FillPainter(Color.GREEN));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Disabled+Indeterminate].foregroundPainter", new FillPainter(Color.GREEN));

UIManager.getLookAndFeelDefaults().put("ProgressBar[Enabled+Indeterminate].foregroundPainter", new FillPainter(Color.GREEN)); `

在这一行之后

javax.swing.UIManager.setLookAndFeel(info.getClassName());

我成功地改变了背景的颜色.

但现在颜色是“平原”,没有像橙色那样的渐变.

是否可以改变颜色与原始颜色相同的效果?

解决方法:

>也许(颜色和字体)问题谈论Nimbus外观和感觉

>必须到check this thread

>价值

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.也许最简单的方法是将nimbusOrange从Nimbus默认值的顶部更改,但这种变化无处不在,

例如,使用更改的控制颜色向GUI输出有趣的输出

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

.

5.例如

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 {

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);

}

}

标签:jprogressbar,java,colors,swing,nimbus

来源: https://codeday.me/bug/20190723/1512186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值