当前位置:编程学习 > JAVA >>

新手学习,绘制自定义控件问题

刚学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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,