JPanel 如何改背景颜色

问题描述

publicclassBallPanelextendsjavax.swing.JPanel{privatefinalintINIT_X=75;privatefinalintINIT_Y=75;privatefinalintDIAMETER=60;privateSmartEllipse_ball;publicBallPanel(){super();_ball=newSmartEllipse(java.awt.Color.green);_ball.setLocation(INIT_X,INIT_Y);_ball.setSize(DIAMETER,DIAMETER);this.setBackground(java.awt.Color.white);//我想把背景改成白色,但是不行。。。}publicvoidpaintComponent(java.awt.GraphicsaBrush){super.paintComponents(aBrush);java.awt.Graphics2DbetterBrush=(java.awt.Graphics2D)aBrush;_ball.fill(betterBrush);_ball.draw((java.awt.Graphics2D)aBrush);}}

解决方案

解决方案二:
this.getContentPane().setBackground(java.awt.Color.white);

你试试上面的代码另外,没法帮你调试因为没有SmartEllipse类
解决方案三:
this.setBackground(java.awt.Color.white);//我想把背景改成白色,但是不行。。。放到paintComponent方法里publicvoidpaintComponent(java.awt.GraphicsaBrush){super.paintComponents(aBrush);java.awt.Graphics2DbetterBrush=(java.awt.Graphics2D)aBrush;setBackground(java.awt.Color.white_ball.fill(betterBrush);_ball.draw((java.awt.Graphics2D)aBrush);}
解决方案四:
this.setBackground(java.awt.Color.white);这样写是没有错的,但是panel是要有父组建的,即要在一个frame上才能显示一个panel,楼主试一下加一个frame,然后add这个panel,设置背景颜色那样写是正确的
解决方案五:
同意3L
解决方案六:
同意4L
解决方案七:
没看到你extends的JPanel,我以为是JFrame呢。我把你代码改了一下,你看看,当然这是示意如何显示背景色publicclassBallPanelextendsjavax.swing.JFrame{//改成JFrame,为什么?看3楼privatefinalintINIT_X=75;privatefinalintINIT_Y=75;privatefinalintDIAMETER=260;//改大点60实在太小了//privateSmartEllipse_ball;//我注释掉了publicBallPanel(){super();//_ball=newSmartEllipse(java.awt.Color.green);//同上注释掉了this.setLocation(INIT_X,INIT_Y);this.setSize(DIAMETER,DIAMETER);this.getContentPane().setBackground(java.awt.Color.red);//为了直白,改成红色this.setVisible(true);//显示改组件}publicstaticvoidmain(Stringargs[]){newBallPanel();}}

输出:
解决方案八:
jpanel要有容器才可以显示的。不象JFrame之类的可以独立显示。。
解决方案九:
看来我该把全部程序贴出来,我的意图是先有一个JFrame类了,在里面放一个JPanel的类型,然后在JPanel上面显示一个圆,然后可以改JPanel的背景颜色,代码如下:publicclassBallAppextendsjavax.swing.JFrame{/***@paramargs*/privateBallPanelp;publicBallApp(Stringtitle){super(title);this.setSize(600,450);this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);p=newBallPanel();this.add(p);this.setVisible(true);}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBallAppapp=newBallApp("Jam'sfirstwindow");//pane1.}}publicclassBallPanelextendsjavax.swing.JPanel{privatefinalintINIT_X=75;privatefinalintINIT_Y=75;privatefinalintDIAMETER=250;privateSmartEllipse_ball;publicBallPanel(){super();_ball=newSmartEllipse(java.awt.Color.green);_ball.setLocation(INIT_X,INIT_Y);_ball.setSize(DIAMETER,DIAMETER);}publicvoidpaintComponent(java.awt.GraphicsaBrush){super.paintComponents(aBrush);java.awt.Graphics2DbetterBrush=(java.awt.Graphics2D)aBrush;_ball.fill(betterBrush);_ball.draw((java.awt.Graphics2D)aBrush);}}publicclassSmartEllipseextendsjava.awt.geom.Ellipse2D.Double{privatejava.awt.Color_borderColor,_fillColor;privateint_rotation;privatefinalintSTROKE_WIDTH=2;publicSmartEllipse(java.awt.ColoraColor){super();_borderColor=aColor;_fillColor=aColor;_rotation=0;}publicvoidsetBorderColor(java.awt.ColoraColor){_borderColor=aColor;}publicvoidsetFillColor(java.awt.ColoraColor){_fillColor=aColor;}publicvoidsetColor(java.awt.ColoraColor){_fillColor=aColor;_borderColor=aColor;}publicvoidsetRotation(intaRotation){_rotation=aRotation;}publicvoidsetLocation(doublex,doubley){this.setFrame(x,y,this.getWidth(),this.getHeight());}publicvoidsetSize(intaWidth,intaHeight){this.setFrame(this.getX(),this.getY(),aWidth,aHeight);}publicvoidmove(intaChangeInX,intaChangeInY){this.setFrame((int)this.getX()+aChangeInX,(int)this.getY()+aChangeInY,this.getWidth(),this.getHeight());}publicvoidfill(java.awt.Graphics2DaBetterBrush){java.awt.ColorsaveColor=aBetterBrush.getColor();aBetterBrush.setColor(_fillColor);aBetterBrush.fill(this);aBetterBrush.setColor(saveColor);}publicvoiddraw(java.awt.Graphics2DaBrush){java.awt.ColorsavedColor=aBrush.getColor();aBrush.setColor(_borderColor);java.awt.StrokesavedStroke=aBrush.getStroke();aBrush.setStroke(newjava.awt.BasicStroke(STROKE_WIDTH));aBrush.draw(this);aBrush.setStroke(savedStroke);aBrush.setColor(savedColor);}}

解决方案十:
我是先加了JFrame类的了~~~~~~~请你们帮帮忙~~~
解决方案十一:
java.awt.Color.white,white是不是要大写?
解决方案十二:
路过学习顶顶
解决方案十三:
很好。。。
解决方案十四:
getContentPane().setVisible(false);this.setBackground(Color.WHITE);这样写也是可以的
解决方案十五:
顶6楼
解决方案:
JPanel换成JComponent
解决方案:
publicclassBallAppextendsjavax.swing.JFrame{/***@paramargs*/privateBallComponentc;//换成cpublicBallApp(Stringtitle){super(title);this.setSize(600,450);this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);//p=newBallPanel();//this.add(p);c=newBallComponent();//换成cthis.add(c);this.getContentPane().setBackground(java.awt.Color.RED);//背景色改成红this.setVisible(true);}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBallAppapp=newBallApp("Jam'sfirstwindow");//pane1.}}/***照搬一个JComponent*@authorAdministrator**/classBallComponentextendsjavax.swing.JComponent{privatefinalintINIT_X=75;privatefinalintINIT_Y=75;privatefinalintDIAMETER=250;privateSmartEllipse_ball;publicBallComponent(){super();_ball=newSmartEllipse(java.awt.Color.green);_ball.setLocation(INIT_X,INIT_Y);_ball.setSize(DIAMETER,DIAMETER);}publicvoidpaintComponent(java.awt.GraphicsaBrush){super.paintComponents(aBrush);java.awt.Graphics2DbetterBrush=(java.awt.Graphics2D)aBrush;_ball.fill(betterBrush);_ball.draw((java.awt.Graphics2D)aBrush);}}classSmartEllipseextendsjava.awt.geom.Ellipse2D.Double{//publicclassSmartEllipseextendsjava.awt.geom.Ellipse2D.Double{//去掉了publicprivatejava.awt.Color_borderColor,_fillColor;privateint_rotation;privatefinalintSTROKE_WIDTH=2;publicSmartEllipse(java.awt.ColoraColor){super();_borderColor=aColor;_fillColor=aColor;_rotation=0;}publicvoidsetBorderColor(java.awt.ColoraColor){_borderColor=aColor;}publicvoidsetFillColor(java.awt.ColoraColor){_fillColor=aColor;}publicvoidsetColor(java.awt.ColoraColor){_fillColor=aColor;_borderColor=aColor;}publicvoidsetRotation(intaRotation){_rotation=aRotation;}publicvoidsetLocation(doublex,doubley){this.setFrame(x,y,this.getWidth(),this.getHeight());}publicvoidsetSize(intaWidth,intaHeight){this.setFrame(this.getX(),this.getY(),aWidth,aHeight);}publicvoidmove(intaChangeInX,intaChangeInY){this.setFrame((int)this.getX()+aChangeInX,(int)this.getY()+aChangeInY,this.getWidth(),this.getHeight());}publicvoidfill(java.awt.Graphics2DaBetterBrush){java.awt.ColorsaveColor=aBetterBrush.getColor();aBetterBrush.setColor(_fillColor);aBetterBrush.fill(this);aBetterBrush.setColor(saveColor);}publicvoiddraw(java.awt.Graphics2DaBrush){java.awt.ColorsavedColor=aBrush.getColor();aBrush.setColor(_borderColor);java.awt.StrokesavedStroke=aBrush.getStroke();aBrush.setStroke(newjava.awt.BasicStroke(STROKE_WIDTH));aBrush.draw(this);aBrush.setStroke(savedStroke);aBrush.setColor(savedColor);}}

我也是刚开始学;1.5.0_17Eclipse调试结果:
解决方案:
再试试图
解决方案:
是的,把Jpanel放在Jframe上,在用你那句就ok了。引用7楼hui94781674的回复:

jpanel要有容器才可以显示的。不象JFrame之类的可以独立显示。。

解决方案:
JFramef=newJFrame();JPanelp=newJPanel();f.add(p);p.setBackground(Color.RED);this.setVisible(true);
解决方案:
jbuild一下就可以了咱刚学不要怪我嘎嘎
解决方案:
引用19楼zhuyouyong的回复:

JFramef=newJFrame();JPanelp=newJPanel();f.add(p);p.setBackground(Color.RED);this.setVisible(true);

你可以在我原程序上改吗,,我这样改了也不行
解决方案:
publicclassBallAppextendsjavax.swing.JFrame{/***@paramargs*/privateBallPanelp;publicBallApp(Stringtitle){super(title);this.setSize(600,450);this.setBackground(java.awt.Color.red);this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);p=newBallPanel();this.add(p);this.setVisible(true);}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBallAppapp=newBallApp("Jam'sfirstwindow");//pane1.}}publicclassBallPanelextendsjavax.swing.JPanel{privatefinalintINIT_X=75;privatefinalintINIT_Y=75;privatefinalintDIAMETER=250;privateSmartEllipse_ball;publicBallPanel(){super();_ball=newSmartEllipse(java.awt.Color.green);_ball.setLocation(INIT_X,INIT_Y);_ball.setSize(DIAMETER,DIAMETER);}publicvoidpaintComponent(java.awt.GraphicsaBrush){super.paintComponents(aBrush);java.awt.Graphics2DbetterBrush=(java.awt.Graphics2D)aBrush;_ball.fill(betterBrush);_ball.draw((java.awt.Graphics2D)aBrush);}}publicclassSmartEllipseextendsjava.awt.geom.Ellipse2D.Double{privatejava.awt.Color_borderColor,_fillColor;privateint_rotation;privatefinalintSTROKE_WIDTH=2;publicSmartEllipse(java.awt.ColoraColor){super();_borderColor=aColor;_fillColor=aColor;_rotation=0;}publicvoidsetBorderColor(java.awt.ColoraColor){_borderColor=aColor;}publicvoidsetFillColor(java.awt.ColoraColor){_fillColor=aColor;}publicvoidsetColor(java.awt.ColoraColor){_fillColor=aColor;_borderColor=aColor;}publicvoidsetRotation(intaRotation){_rotation=aRotation;}publicvoidsetLocation(doublex,doubley){this.setFrame(x,y,this.getWidth(),this.getHeight());}publicvoidsetSize(intaWidth,intaHeight){this.setFrame(this.getX(),this.getY(),aWidth,aHeight);}publicvoidmove(intaChangeInX,intaChangeInY){this.setFrame((int)this.getX()+aChangeInX,(int)this.getY()+aChangeInY,this.getWidth(),this.getHeight());}publicvoidfill(java.awt.Graphics2DaBetterBrush){java.awt.ColorsaveColor=aBetterBrush.getColor();aBetterBrush.setColor(_fillColor);aBetterBrush.fill(this);aBetterBrush.setColor(saveColor);}publicvoiddraw(java.awt.Graphics2DaBrush){java.awt.ColorsavedColor=aBrush.getColor();aBrush.setColor(_borderColor);java.awt.StrokesavedStroke=aBrush.getStroke();aBrush.setStroke(newjava.awt.BasicStroke(STROKE_WIDTH));aBrush.draw(this);aBrush.setStroke(savedStroke);aBrush.setColor(savedColor);}}

解决方案:
我是菜鸟,我看你们写的代码都好复杂啊

时间: 2024-08-02 19:40:31

JPanel 如何改背景颜色的相关文章

请问ToolStrip控件中加入的ToolStripLabel如何改背景颜色?

问题描述 请问ToolStrip控件中加入的ToolStripLabel如何改背景颜色:窗体直接改不起作用:还有就是我需要同时控制几个ToolStripLabel的背景颜色.OnRenderLabelBackground(ToolStripItemRenderEventArgse)用这个只能解决控制一个. 解决方案 解决方案二:http://blog.csdn.net/bdmh/article/details/7489314参考了这个,但是只能修改当前事件的解决方案三:ToolStrip的Ren

ios-修改UISlider背景颜色

问题描述 修改UISlider背景颜色 使用slide修改UISlider背景颜色如下: 代码,但是没实现像连接图片的效果: @property (strong, nonatomic) IBOutlet UISlider *r; @property (strong, nonatomic) IBOutlet UISlider *g; @property (strong, nonatomic) IBOutlet UISlider *b; -(void)blueSlider:(UISlider*)sl

Word页面背景颜色及字体背后的灰色背景如何去掉

  首先选定需要修改的部分--格式--边框和底纹--底纹选项卡--填充选择无填充色,图案:式样选择清除,应用范围选择文字或/段落(看实际情况)--确定. 操作步骤 1.背景颜色对于一个新手来说有两种都可能当做背景颜色,一种是页面设置的颜色.一种则是字体阴影.如图所示.所以就这两种形式都可以做一个讲述. 2.首先是字体阴影,字体阴影是字体背后有灰色背景.消除这个很简单,第一步选定被后面有阴影的文字. 3.然后点击word的开始标签的字符底纹按钮.(就是一个A字后面有颜色底纹)点击之后底纹就消失了.

win8.1系统怎么将窗口背景颜色

  1.右键点击开始→运行; 2.在运行中输入: regedit 按回车键之后,打开注册表编辑器;   3.依次定位到:HKEY_CURRENT_USERControl Panel;   4.找到Control PanelColors;   5.然后在右边的底部找到Windows;   6.双击Windows打开进行设置.记住默认的白色背景是:255 255 255;   7.在数值数据中将原来的255 255 255(白色背景)改为淡绿色的:204 232 207 →确定;   8.修改之后,

Win7系统窗口背景颜色设置技巧

  Win7窗口颜色怎么改?下面系小编就为大家介绍一下Win7系统窗口背景颜色设置技巧. 1.方法非常简单,首先用鼠标右击桌面选择"个性化"; 2.进入个性化设置后,单击"窗口颜色"切换到下一个窗口; 3.然后单击"高级外观设置"出现对话框; 4.点开选择列表,选择"窗口" 5.然后点击"颜色",如果默认没有自己中意的,可以点击"其它"自行配色;每次选择之后在上方都会有实时预览.

ios-iPhone中背景颜色的问题,有图

问题描述 iPhone中背景颜色的问题,有图 我的问题是,我使用CAGradientLayer 设置UIView的背景颜色,我本来想要的是红色的渐变色,但是效果出来成了紫罗兰色,有图 代码如下: - (void)viewWillAppear:(BOOL)animated { CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = self.view.bounds; gradient.colors = [NSArr

linux BASH shell下设置字体及背景颜色_linux shell

BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e[32m 将字符的显示颜色改为绿色 \e[33m 将字符的显示颜色改为淡红色 \e[34m 将字符的显示颜色改为蓝色 \e[35m 将字符的显示颜色改为紫色 \e[36m 将字符的显示颜色改为淡蓝色 \e[37m 将字符的显示颜色改为灰色 \e[40m -- \e[47m 设置背景色 \e[40m 将背景色设

Html渲染 让从后台传来的值改变那个li的背景颜色

问题描述 Html渲染 让从后台传来的值改变那个li的背景颜色 假设 ${a}=0 ${b}!=0<ul> <li>${a}</li> <li>${b}</li></ul> 把值为0的li背景渲染成绿色,显示改变为"未预约"跪求完整代码 解决方案 js版本 <ul id=""ul""> <li>0</li> <li>1</

设置背景颜色-MFC中在View类中改变ClientDC的背景颜色

问题描述 MFC中在View类中改变ClientDC的背景颜色 我在MFC中建立了一个工程,用来在CView类中通过ClientDC来进行画图操作,现在想将ClientDC的默认背景颜色从白色改成黑色或者其他的颜色,求各位C大神指点,谢啦! PS:我试过在PreCreateWindow()和OnEraseBkgnd()函数中进行设置,但是没有成功,代码如下,请各位大神改正. BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs) { cs.lpszCl