本來是在drawcomponent這個里邊使用setBackground,你想啊drawcomponent是繼承JComponent的所以它是一個容器,所以它同樣有setBackground這個方法來設(shè)置它的背景顏色
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出三都免費做網(wǎng)站回饋大家。
但是因為你在設(shè)置它本身為一個畫布,因為你用了paintComponent(Graphics?g)
這個方法,所以setBackground這個方法即使你用了也看不到很大的效果。但是有一種取代的方法就是在paintComponent(Graphics?g)方法中首先就用Graphics?所含有的方法g.setColor(Color.black);來設(shè)置背景顏色再用g.fillRect(0,?0,?this.getWidth(),?this.getHeight());來填滿整個容器,這就達到了設(shè)置背景目的。然后你再g.setColor(其他顏色);來繪制其它圖形.
具體代碼:(在你以上的代碼上修改了點)
public?void?paintComponent(Graphics?g)
{
Graphics2D?g2=(Graphics2D)g;
g.setColor(Color.black);//這里設(shè)置背景顏色
g.fillRect(0,?0,?this.getWidth(),?this.getHeight());//這里填充背景顏色
double?x=100;
double?y=100;
double?w=200;
double?h=150;
Rectangle2D?rect=new?Rectangle2D.Double(x,y,w,h);
g2.setPaint(Color.white);//這里是你設(shè)置其他筆觸顏色
g2.draw(rect);
Ellipse2D?ellipse=new?Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
Point2D?p1=new?Point2D.Double(x-40,y-30);
Point2D?p2=new?Point2D.Double(x+w+40,y+h+30);
g2.draw(new?Line2D.Double(p1,p2));
double?centerx=rect.getCenterX();
double?centery=rect.getCenterY();
double?radius=150;
Ellipse2D?circle=new?Ellipse2D.Double();
circle.setFrameFromCenter(centerx,centery,centerx+125,centery+125);
g2.draw(circle);
}
測試結(jié)果圖
代碼太多,丟個核心即可;
JMenuBar?mb=new?JMenuBar();
mb.getComponent().setBackground(Color.RED);//設(shè)置背景顏色的核心代碼!
**************************************************************
新建一個類ChangeColor.java,代碼如下:
**************************************************************
import?java.awt.Color;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseMotionListener;
import?javax.swing.JFrame;
/**
*?@author?Godwin
*?@version?2010-05-16
*/
public?class?ChangeColor?extends?JFrame?implements?MouseMotionListener?{
public?ChangeColor()?{
this.setTitle("Change?Color");
this.setBounds(300,?200,?400,?300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.getContentPane().setBackground(Color.GREEN);
this.addMouseMotionListener(this);
}
public?void?mouseMoved(MouseEvent?e)?{
if?(e.getX()??(this.getWidth()?/?2))?{
this.getContentPane().setBackground(Color.RED);
}?else?{
this.getContentPane().setBackground(Color.BLUE);
}
}
public?void?mouseDragged(MouseEvent?e)?{
}
public?static?void?main(String[]?args)?{
new?ChangeColor();
}
}
**************************************************************
運行結(jié)果如下:
**************************************************************