新手学习,绘制自定义控件问题 刚学Java,用swing写了个自定义控件,怎么也改变不了自定义控件的背景色,setBackground方法用在哪里都不行,在调用界面中改变new出来的控件属性setBackground也没有反应了,点解啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你是 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() 是 falseJPanel 默认的 isOpaque() 是 true你可以自己调用 isOpaque() 查看其他控件的默认的 opaque 属性 用java的反射机制怎么获取一个类中里面方法中局部变量?? java中jdbc怎么链接sqlserver数据库,请高手帮帮 急求:javac调用不到 高分求助,求最大植 客户端Applet程序怎样跟服务器数据库连接? 图片处理 电子书籍下载 要做一个表格,要求是能够定时刷新其中的内容.(急急急急!) 简单的理论问题,高手请进。 疑惑 java代码优化问题 问个算法的问题
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() 就能正常工作了。