本文目錄一覽:
- 1、java窗口的背景顏色
- 2、java設定背景顏色
- 3、在java中如何設定面板的背景顏色
- 4、java 點擊按紐改變背景顏色
- 5、java窗口背景顏色怎麼設定?用setBackground()好像不行,請大俠指教!
java窗口的背景顏色
public void setBackground(Color c)設置組件的背景色。
背景色對每個組件的影響各不相同,並且部分受背景色影響的組件在不同的操作系統之間可能有所不同。
用這個方法嘛,改變不了,可能是你在窗體上添加了別的容器什麼的把當前要改變的給擋上了.仔細排查一下,相信你會改過來的.
java設定背景顏色
本來是在drawcomponent這個裡邊使用setBackground,你想啊drawcomponent是繼承JComponent的所以它是一個容器,所以它同樣有setBackground這個方法來設置它的背景顏色
但是因為你在設置它本身為一個畫布,因為你用了paintComponent(Graphics g)
這個方法,所以setBackground這個方法即使你用了也看不到很大的效果。但是有一種取代的方法就是在paintComponent(Graphics g)方法中首先就用Graphics 所含有的方法g.setColor(Color.black);來設置背景顏色再用g.fillRect(0, 0, this.getWidth(), this.getHeight());來填滿整個容器,這就達到了設置背景目的。然後你再g.setColor(其他顏色);來繪製其它圖形.
具體代碼:(在你以上的代碼上修改了點)
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
g.setColor(Color.black);//這裡設置背景顏色
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);//這裡是你設置其他筆觸顏色
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);
}
測試結果圖
在java中如何設定面板的背景顏色
我們先打開需要設置背景顏色的word文檔,打開之後我們可以看到在工具欄有一個「格式」選項,單擊該選項,會看到該選項還會下分子選項。
在下分的選項里,我們將滑鼠移到「背景」又會下拉選項,這時我們就可以選擇我們喜歡的顏色作為背景顏色了,假如你喜歡紅色的話,那麼單擊紅色即可。
單擊「紅色」按鈕之後就會出現如圖所示啦,這時我們就可以看到word文檔的背景變成紅色的了。
選擇紅色之後,我們可以看到紅色太刺眼了,那麼想選擇其他顏色的話該怎麼辦呢?那麼我們繼續按照上面的兩個步驟來做,只不過在下拉的選項里我們單擊「填充效果」按鈕。
單擊「填充效果」按鈕之後會彈出如圖對話框,這時我們單擊「紋理」按鈕。
單擊「紋理」按鈕之後會彈出如圖對話框,這時我們就可以給word文檔填充自己喜歡的紋理背景了。
如果你不喜歡紋理背景的話,那麼可以單擊「圖案」按鈕選擇自己喜歡的圖案來做word背景顏色。
如果「圖案」裡面的圖形也不能滿足你的話,那麼你可以繼續單擊後方的「圖片」按鈕。單擊之後會出現如圖所示,這時我們單擊下方的「選擇圖片」按鈕。
單擊之後會彈出如圖對話框,這時我們可以從自己的電腦里找到自己喜歡的圖片來作為word的背景顏色,找到之後單擊「插入」按鈕即可。
單擊「插入」按鈕之後會出現如圖所示,此時我們單擊「確定」按鈕。
單擊「確定」按鈕之後就會出現如下圖所示啦,這時我們就可以看出來,這次的背景顏色比第一次的要好看很多。為word添加背景顏色你會了嗎?
java 點擊按紐改變背景顏色
分析題目:
一 分析布局: 題目明確的指出了按鈕的位置和大小 ,那麼說明需要使用的布局是空布局(絕對布局) , 而JFrame窗口的內容面板默認布局是邊界布局(BorderLayout),所以需要設置一下
setLayout(null);//設置為絕對布局
二了解顏色. Color 可以通過紅,綠,藍 三原色, 不同的搭配, 形成不同的顏色.
每個原色的取值範圍是0~255, 比如紅色的rgb值就是r=255,g=0,b=0
胡蘿蔔色 r=237,g=145,b=33
三添加顏色 ,java給JFrame添加顏色,比較特殊. 必須添加到內容面板上,才能正常顯示(因為JFrame分了好多層)
getContentPane().setBackground(new Color(r,g,b));//設置窗口的面板背景色
四 事件處理分析: 點擊按鈕,會觸發ActionEvent 事件,這個事件會被ActionListener 接收器接收到, 只需要重寫ActionListener 里的actionPerformed 方法, 即可實現點擊按鈕後,做某件事
五 具體參考代碼
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
// 本類繼承JFrame,實現了ActionListener介面
public class MyFrame extends JFrame implements ActionListener{
int r = 90;
int g = 15;
int b = 195;
public MyFrame() {
//組件的初始化
JButton jbRed = new JButton(“red”);
jbRed.setLocation(20, 80);//按鈕位置
jbRed.setSize(80, 40);//按鈕大小
jbRed.addActionListener(this);//添加點擊按鈕後的事件響應 ,因為本類實現了ActionListener介面,所以可以傳入參數this
JButton jbGreen = new JButton(“green”);
jbGreen.setLocation(120, 80);
jbGreen.setSize(80, 40);
jbGreen.addActionListener(this);
JButton jbBlue = new JButton(“blue”);
jbBlue.setLocation(220, 80);
jbBlue.setSize(80, 40);
jbBlue.addActionListener(this);
//添加組件到窗口
add(jbRed);
add(jbGreen);
add(jbBlue);
//窗口的設置
setLayout(null);//因為每一個按鈕都設置了位置和大小, 那麼應該把窗口設置為空布局, 那麼位置和大小才能有效
setTitle(“窗口標題”);
getContentPane().setBackground(new Color(r,g,b));//設置窗口的面板背景色
setLocation(220, 160);// 窗口位置
setSize(320, 240);// 窗口大小
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//點擊關閉按鈕時,結束程序
//下面也可以實現,點擊關閉按鈕時, 結束程序
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {//點擊關閉按鈕會觸發這個事件,調用這個方法
System.out.println(“通過WindowListener實現關閉”);
System.exit(0);//退出
}
});
}
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
//通過ActionCommand 來判斷是哪一個按鈕被點擊了
if(“red”.equals(cmd)) {//如果是紅色按鈕被點擊了,那麼紅色+10
r+=10;
if(r255) {//如果red大於255 ,可以設置為0 ,也可以設置為255,一直鎖定為255 也可設置為初始的90,這裡題目這裡沒有要求
r=90;
}
}else if(“green”.equals(cmd)) {
g+=10;
if(g255) {
g=15;
}
}else if(“blue”.equals(cmd)){
b+=10;
if(b255) {
b=195;
}
}
this.getContentPane().setBackground(new Color(r,g,b));
//System.out.println(this.getContentPane().getBackground());
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new MyFrame().setVisible(true);//啟動窗口並設置可見
}
});
}
}
java窗口背景顏色怎麼設定?用setBackground()好像不行,請大俠指教!
你好!
首先,你說的Java窗口是指JFrame或者Frame
其次,你說的窗口背景顏色是指直接調用JFrame或者Frame的setBackground(Color color)方法設置後顯示出來的顏色。其實,你的想法是正確的,但是我想提醒你的是,你沒搞明白JFrame的顯示機制。在你直接調用這個方法後,你的確設置了背景顏色,而你看到的卻不是直接的JFrame或者Frame,而是JFrame.getContentPane().而JFrame上的contentPane默認是Color.WHITE的,所以,無論你對JFrame或者Frame怎麼設置背景顏色,你看到的都只是contentPane.
最後,講解決辦法:
辦法A:在完成初始化,調用getContentPane()方法得到一個contentPane容器,然後將其設置為不可見,即setVisible(false)。這樣,你就可以看到JFrame的廬山真面貌啦!
核心代碼this.getContentPane().setVisible(false);//得到contentPane容器,設置為不可見
實例完整代碼如下:
/*
* TestJFrameBGColor.java
*
* Created on 2011-5-8, 0:21:20
*/
package testjframebgcolor;
import java.awt.Color;
/**
*
* @author 葉科良
*/
public class TestJFrameBGColor extends javax.swing.JFrame {
/** Creates new form TestJFrameBGColor */
public TestJFrameBGColor() {
initComponents();
this.getContentPane().setVisible(false);//得到contentPane容器,設置為不可見
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
// editor-fold defaultstate=”collapsed” desc=”Generated Code”
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(testjframebgcolor.TestJFrameBGColorApp.class).getContext().getResourceMap(TestJFrameBGColor.class);
setBackground(resourceMap.getColor(“Form.background”)); // NOI18N
setName(“Form”); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// /editor-fold
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestJFrameBGColor().setVisible(true);
}
});
}
// Variables declaration – do not modify
// End of variables declaration
}
方法B:將contentPane的顏色設置為你想要的顏色,而不是對JFrame本身設置,
核心代碼:this.getContentPane().setBackground(Color.red);//設置contentPane為紅色
將核心代碼替換方法A核心代碼即可實現
方法C:為JFrame添加一個Panel或者JLabel等其他組件,設置其顏色為你想要的顏色,然後將其覆蓋JFrame窗口即可
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/194065.html