調(diào)用需要設(shè)置顏色的控件的setBackgroud();方法就可以了。
10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有成安免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
但是設(shè)置JFrame和JLabel的背景色,一般就是下面的做法
JFrame frame = new JFrame();
frame.setBackground(Color.Red);
JLabel l = new JLabel();
l.setBackground(Color.Yellow);
frame.add(l);
結(jié)果根本就沒有反應(yīng)。這是由于Swing跟AWT有千絲萬縷的聯(lián)系,它既要支持AWT又要有自己新的體系,所以呢,這個如果對于AWT中的Frame是可以直接通過setBackground來設(shè)置背景色,但是對于JFrame則不可以,應(yīng)該采用下面的方法:
JFrame frame = new JFrame();
frame.getContentPane().setBackground(Color.Red);
而對于JLabel來說則要設(shè)置JLabel為不透明的才行,即
JLabel comp = new JLabel(value);
comp.setBackground(color);
comp.setOpaque(true);
這句代碼frame.setBackground(Color.Red);
改變的是框架的顏色,框架的上面還有窗格,所以你要改變窗格的顏色才可以側(cè)低改變框架的顏色
在主函數(shù)里加Containerframe.getContentPane()意思是獲得窗格
? ? ? ? ?setBackground(Color.Red);???????????????????????改變窗格顏色
另外再附一段背景顏色漸變的代碼
運行示意圖如下:
import?java.awt.Color;
import?java.awt.GradientPaint;
import?java.awt.Graphics;
import?java.awt.Graphics2D;
import?javax.swing.JPanel;
import?java.awt.BorderLayout;
import?java.awt.EventQueue;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
class?ShadePanel?extends?JPanel?{
private?static?final?long?serialVersionUID?=?-2644424271663261406L;
public?ShadePanel()?{
super();
setLayout(null);
}
@Override
protected?void?paintComponent(Graphics?g1)?{//?重寫繪制組件外觀
Graphics2D?g?=?(Graphics2D)?g1;
super.paintComponent(g);//?執(zhí)行超類方法
int?width?=?getWidth();//?獲取組件大小
扮稿?int?height?=?getHeight();
//?創(chuàng)建填充模式對象棚橋
GradientPaint?paint?=?new?GradientPaint(0,?0,?Color.CYAN,?0,?height,
Color.MAGENTA);
g.setPaint(paint);//?設(shè)置繪圖對象的填充模式
g.fillRect(0,?0,?width,?height);//?繪制矩形填充控件界面
}
}
public?class?ShadeBackgroundImage?extends?JFrame?{
private?static?final?鏈缺猛long?serialVersionUID?=?4693799019369193520L;
private?JPanel?contentPane;
public?static?void?main(String[]?args)?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
ShadeBackgroundImage?frame?=?new?ShadeBackgroundImage();
frame.setVisible(true);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
});
}
public?ShadeBackgroundImage()?{
setTitle("背景為漸變色的主界面");//?設(shè)置窗體標(biāo)題
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,?100,?450,?300);
contentPane?=?new?JPanel();//?創(chuàng)建內(nèi)容面板
contentPane.setLayout(new?BorderLayout(0,?0));
setContentPane(contentPane);
ShadePanel?shadePanel?=?new?ShadePanel();//?創(chuàng)建漸變背景面板
contentPane.add(shadePanel,?BorderLayout.CENTER);//?添加面板到窗體內(nèi)容面板
}
}
這個比較簡單,沒啥東西,就是每列開始行的選擇,有點繞彎,我就注釋下GraphicsPanel吧,主要的繪制工作都在這個類里面
private?class?GraphicsPanel?extends?JPanel?{
public?void?paint(Graphics?g)?{
Graphics2D?g2d?=?(Graphics2D)?g;
g2d.?setFont?(getFont?().?deriveFont?(Font.?BOLD));
g2d.?setColor(Color.?BLACK);
g2d.?fillRect?(0,?0,?screenSize.?width,?screenSize.?height);???//?設(shè)置背景色為黑色
int?currentColumn?=?0;
for?(int?x?=?0;?x??screenSize.width;?x?+=?gap)?{
int?endPos?=?posArr[currentColumn];??????//獲得開始行位置
g2d.?setColor(Color.?GREEN);
g2d.drawString(String.valueOf(getChr()),?x,?endPos?*?gap);?????//畫出隨機開始行的字符
int?cg?=?0;?????????????????????和明??????????????????????????????????????//初始黑色
for?(int?j?=?endPos?-16;?j??endPos;?j++)?{???????????//隨機行逐列向上16行,為循環(huán)開始行
cg?+=?15;???????碧唯??????????????????????????????????????????????//漸變色15遞增,255為green
if?(cg??255)?{
cg?=?255;
}
g2d.setColor(new?Color(0,?cg,?0));
悔棚培???????????????????g2d.drawString(String.valueOf(getChr()),?x,?j?*?gap);????//畫出隨機行后的15行字符,顏色從黑色漸變成綠色,逐行增加
}
posArr[currentColumn]?+=?random.nextInt(5);??????//下落距離最快為4
if?(posArr[currentColumn]?*?gap??getHeight())?{??//如果行數(shù)位置大于屏幕高度,從新獲取合適的行
posArr[currentColumn]?=?random.nextInt(lines);
}
currentColumn++;????//下一列獲取隨機行
}
至少有兩種方案可以實現(xiàn):
第一是使用背景圖片,就是給Linearlayout添加一個background屬性,值選擇一張帶漸變顏色的圖片即可。
第二種方案是使用獨立的顏色代碼來替代上述一種的背景圖片,比如可以在res/drawable下新建一個mycolor.xml,然后再在LinearLayout添加屬性
android:background="@drawable/mycolor"即可
?xml?version="1.0"?encoding="utf-8"?
shape?xmlns:android="
gradient
android:angle="270"
android:centerColor="#00FFFF"
android:centerX="0.5"
殲慶???android:centerY="悔碧0。3"
android:endColor="#666666"
android:startColor="#0099FF"?/
padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp"?/
corners?android:radius="4dp"?/
/shape
解析:其中android:angle ="270.0"代表角度為270,由上到下的漸變,如果我改變成0那么就變成了從左到右的漸變,如果改變90.0那么漸變碧改舉會從下邊往上漸變,可以 多改變一下參數(shù)試試效果。centerColor中間顏色; centerX: x軸漸變中心,從左到右漸變時有意義;centerY: 同理y軸的漸變中心;endColor 漸變終點顏色,同樣startColor為漸變起點顏色。
上述代碼效果如下:
網(wǎng)站名稱:java漸變色代碼 java調(diào)顏色
本文網(wǎng)址:http://jinyejixie.com/article4/ddpgdie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站導(dǎo)航、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)