JAVA 中JButton的背景色问题
StringlookAndFeel=UIManager.getSystemLookAndFeelClassName();UIManager.setLookAndFeel(...
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);
前面我设置了一个LOOKANDFEEL,结果在设置按钮JBUTTON时用SetBackground()时只能设置底色,不能把整个按钮变色,求高手怎么改变啊?
比如我设置了背景色是黄色,结果成这样了 展开
UIManager.setLookAndFeel(lookAndFeel);
前面我设置了一个LOOKANDFEEL,结果在设置按钮JBUTTON时用SetBackground()时只能设置底色,不能把整个按钮变色,求高手怎么改变啊?
比如我设置了背景色是黄色,结果成这样了 展开
1个回答
推荐于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就是显示控件样子的
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就是显示控件样子的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询