问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中要求用给定的整数值设定背景颜色

发布网友 发布时间:2022-05-10 23:24

我来回答

4个回答

热心网友 时间:2023-11-13 18:49


你好!
首先,你说的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窗口即可

热心网友 时间:2023-11-13 18:49

你好!首先,你说的Java窗口是指JFrame或者Frame 其次,你说的窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。追问嗯,,是在Frame下的,具体问题是这样的,我通过slider返回了一个整数,要求用这个值作为参数构造一个颜色,然后再设定该颜色为背景,所以核心问题是如何将int型变为color

热心网友 时间:2023-11-13 18:50

配到数据库里呗,改的时候也好改

热心网友 时间:2023-11-13 18:50

计算机中所有的颜色是由红、绿、蓝(也就是RGB)这三种基本色组成的,所以你得知道这三种基本色的值才能生成一个有效的颜色,java中有表示颜色的类Color,它需要三个值就能构造出一个颜色对象,当然它也有一个只需要一个int值的的构造方法,其实这个构造方法的内部实现是把这个int值分解成了三部分,分别表示红绿蓝三个值,具体是这样的:
int类型有4个字节,总共32位,其中16-23 位表示红色分量,8-15 位表示绿色分量,0-7 位表示蓝色分量。
所以你只需要把你得到的int值传给Color的构造方法,构造出一个Color对象就行了:
Color color = new Color(你的int值);
然后设置背景色:
setBackground(color);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? java color类中的color怎么赋值 java 中怎样设置窗口的颜色 如何用java,将Color类型装换为int类型 发现老公和别的女人暧昧聊天,该如何处理? Java如何改变数组中某一字符的颜色 Java设置标签颜色 java new了一个颜色,然后怎么去用? java中方法new Color(80,197,197));是什么意思? java中如何用Color()方法设置出米黄、灰蓝等颜色? java里颜色类默认的几种颜色对应的int值是多少? 颜色,在java中用什么数据类型 用java声明一个颜色类Color java颜色代码 java里如何声明一个颜色类? 审核与评估的区别是什么?如材料审核与材料评估。 公务员政审跟资格审核的有什么区别的啊? 批准 审核 审查 这几个有什么不同? 是不是都理解为:认可并签字同意? 公民申报出生登记中,派出所户籍部门对公民递交的申请材料是审查还是审核?审查与审核的区别? YY里的橙马和紫马差什么,我感觉一样啊,没差哪CF YY频道里的马甲怎样排列的? 每种颜色染色的格子数相同,最少颜色java 医保卡余额查询大同 python3 为什么会出现这样的情况 怎么去掉浏览器上边的百度搜索栏 如图~ 游览器地址栏旁边多了个百度搜索怎么去掉 1.5大供水管一小时的出水量是多少? 马力为1HP的水泵,出囗管为1.5寸的,每小时的水流量是多少? 怎么去掉网页上的那个什么搜索栏 1.5寸水泵每小时抽多少方水 水管流量 我的浏览器上老是有个小框 上面写这什么百度搜索引擎什么的 怎么去掉啊? 一寸半的自来水管一小时岀多少来自水 如何去掉火狐浏览器的百度搜索框 我想了解一下小型水力发电机的一些基本知识,比如水的落差45米,管子的直径是1.5寸,一小时能发多少电 如何把360浏览器 360导航首页里的 搜索栏里的 百度搜索去掉 1寸水管1小时扬程50米1500W抽多少立方水? 百度搜索栏怎么清除掉 1.1kw潜水泵,转速2860转,出水口径为1.5寸,1小时出水量多少? 走550米长距离,1.5寸管走水,用多大功率,多少米扬程,多大流量的泵 1寸水管每小时能流多少水