JAVA 中JButton的背景色问题

StringlookAndFeel=UIManager.getSystemLookAndFeelClassName();UIManager.setLookAndFeel(... String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);
前面我设置了一个LOOKANDFEEL,结果在设置按钮JBUTTON时用SetBackground()时只能设置底色,不能把整个按钮变色,求高手怎么改变啊?
比如我设置了背景色是黄色,结果成这样了
展开
 我来答
匿名用户
推荐于2016-11-11
展开全部
这个应该就是你要的效果.... 这里我一起答复了.....

import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Exec1 extends JFrame {

public Exec1() {
init();
}

/**
* 初始化窗体
*/
private void init() {
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lookAndFeel);
} catch (Exception e) {
e.printStackTrace();
}

setLayout(null);
final JButton btnTest = new JButton("测试");
btnTest.setBounds(20, 30, 100, 25);
Border b = new LineBorder(Color.YELLOW, 1);
btnTest.setBorder(b);

add(btnTest);
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
new Exec1().setVisible(true);
}
}

=============
如果你想要那种的,就不能设lookandfeel了
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();

因为你还没了解这部分的机制。

当你改变lookAndFeel之后,java UI的控件发生不少变化。就是说画控件的代码都不是一套的了。你以后了解这部分只是就知道了。
==============
先给你个思路,看看你就明白了。
=========
你用上面的方法设置,你可以到getSystemLookAndFeelClassName函数里看看
当你的系统是windows那它会返回
com.sun.java.swing.plaf.windows.WindowsLookAndFeel,然而用他之后。你所有控件的UI都是使用sun\java\swing\plaf\windows这下面的控件,如:
WindowsButtonUI.java
WindowsButtonListener.java
WindowsCheckBoxMenuItemUI.java
WindowsCheckBoxUI.java 等等。
而你没设lookandfeel之前使用swing默认的风格显示的。它默认是:
使用javax.swing.plaf.basic.BasicLookAndFeel这个类。而控件的UI就是用下面这些:
BasicButtonUI.java
BasicButtonListener.java
BasicCheckBoxMenuItemUI.java
BasicCheckBoxUI.java等等。其实你看看jdk源码就知道了。

控件UI就是显示控件样子的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式