新手学习,绘制自定义控件问题
刚学Java,用swing写了个自定义控件,怎么也改变不了自定义控件的背景色,setBackground方法用在哪里都不行,在调用界面中改变new出来的控件属性setBackground也没有反应了,点解啊? --------------------编程问答-------------------- 有没有好心人帮忙啊 --------------------编程问答-------------------- 如果你是 extends JComponent 的话,JComponent 默认的 isOpaque() 是 false需要你在 constructor 里加一句 this.setOpaque(true);
另外,如果你重写了 paintComponent(Graphics) 方法的话,记得在开头加上 super.paintComponent(g);
如下:
import java.awt.Graphics;
import javax.swing.JComponent;
/**
*
* @date 07/11/2012
*/
public class MyComponent extends JComponent {
public MyComponent() {
// set default layout manager
this.setOpaque(true);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
// customized component painting
}
}
这样,你的 setBackground() 就能正常工作了。 --------------------编程问答-------------------- 另外常见的控件,
JLable 默认的 isOpaque() 是 false
JPanel 默认的 isOpaque() 是 true
你可以自己调用 isOpaque() 查看其他控件的默认的 opaque 属性
补充:Java , Java SE