如何在html中设置网页背景颜色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在html中设置网页背景颜色相关的知识,希望对你有一定的参考价值。
<html><head></head><body><div style="background-color:red;height:100px"></div>
<div style="background-color:blue;height:200px"></div>
</body></html>
颜色自己调,可以用取色器查看颜色,例如background-color:#789999; 如果需要加边框可以用border属性
<html><head></head><body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>
</div></div></body></html>
建议你先了解一下div/CSS布局,同一种布局有不同的实现方式。 参考技术A <body style="background:#ccc">
如何在 Java 中设置 JButton 的背景颜色?
【中文标题】如何在 Java 中设置 JButton 的背景颜色?【英文标题】:How to set a background color of a JButton in Java? 【发布时间】:2011-01-06 09:06:58 【问题描述】:我正在开发 Java 桌面应用程序。其中我在JPanel
上有4 个JButtons
。现在我希望每当单击一个按钮时,它的背景颜色都会更改为其他颜色(例如橙色)以表示它已被单击,并且所有其他 3 个按钮的背景颜色都重置为默认颜色(以防其中任何一个具有橙色背景颜色)。
因此,一次只能有一个按钮为橙色。
我目前应用的方法是在JButton button1的xxxActionPerformed()
方法中实现了如下代码
button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
其余三个按钮也是如此。
现在实际上,我不希望背景颜色为灰色(对于未点击的按钮)。相反,我想要默认背景颜色,以便背景颜色根据最终用户平台的外观调整自己以适应 GUI 的外观。
第一季度。如何获取默认背景颜色?
第二季度。这是执行此操作的正确方法吗?或者是否有任何其他机制可以将所有四个按钮分组到一个按钮组中,以便一次只能有一个具有指定属性(如单选按钮)?
【问题讨论】:
【参考方案1】:Q1.:要获取按钮的 GUI 颜色,只需这样做
button1.setBackground(Color.Orange);
button2.setBackground(java.awt.SystemColor.control);
button3.setBackground(java.awt.SystemColor.control);
button4.setBackground(java.awt.SystemColor.control);
使用这个类 (java.awt.SystemColor.*),您可以获得用户界面所有元素的颜色。
Q2.:我从未听说过分组按钮。那么,我不能回答你这个问题。
希望对你有帮助。
【讨论】:
【参考方案2】:您可以从 UIManager 获取按钮的标准背景颜色:
button1.setBackground(UIManager.getColor("Button.background"));
据我所知,按键可能会有不同的外观和感觉。这是一个不错的 webstart 应用程序,它显示了所有可用的密钥:
http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/
【讨论】:
【参考方案3】:只需使用null
即可使用默认颜色:
button1.setBackground(Color.ORANGE);
button2.setBackground(null);
...
考虑使用带有 ButtonGroup 的 JToggleButtons,设置按钮的 Icon 和 PressedIcon。无需更改背景颜色。
button1 = new JToggleButton(new ImageIcon("0.jpg"));
button1.setSelectedIcon(new ImageIcon("1.jpg"));
button2 = new JToggleButton(new ImageIcon("0.jpg"));
button2.setSelectedIcon(new ImageIcon("2.jpg"));
...
ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
...
【讨论】:
+1 建议最佳方法(使用 JToggleButton)。我一直在寻找这种方法。谢谢 @trashgod 我用它很多次都没有问题,但没有 JToggleButtons ......无论如何,这取决于外观和感觉是否尊重它:-|这是使用 UIManager 的颜色或使用图标的好理由null
对我不起作用。如果设置为 null,则按钮变为透明,这是不同颜色背景的问题。这是在香草 windows sun jdk 7 上。
@Cookie : by documentation "[...] 仅当组件不透明时才使用背景颜色,[...] 尊重此属性取决于外观,有些可以选择忽略它。”【参考方案4】:
这是基于example的“Button.background”的横截面:
*** 金属 javax.swing.plaf.metal.MetalLookAndFeel 636 个条目 Button.background: javax.swing.plaf.ColorUIResource[r=238,g=238,b=238] *** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1052 个条目 按钮背景:com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel$NimbusProperty@60961dff *** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 个条目 Button.background: javax.swing.plaf.ColorUIResource[r=174,g=178,b=195] *** Mac OS X com.apple.laf.AquaLookAndFeel 705 个条目 Button.background:com.apple.laf.AquaNativeResources$CColorPaintUIResource[r=238,g=238,b=238]【讨论】:
【参考方案5】:你有没有研究过java中的装饰器模式,你将一个按钮传递给一个方法,该方法根据按钮是否是当前活动的按钮来装饰它,例如它是否悬停在上面。
public Jbutton decorateButton(JButton b, boolean isHoveredOver)
if(isHoveredOver)
b.setBackground(getContentPane().getBackground().GREEN);
return b;
您从 MouseEvent 或 ActionEvent 方法调用此方法,然后发出 repaint() 。将所有按钮放入一个数组或向量中并循环遍历它,将每个按钮传递给 decorateButton 方法,并将初始布尔值设置为 false,然后在事件中将其设置为 true。 这样,初始值是默认值,然后按钮在操作时被装饰,按钮将显示为组的一部分
【讨论】:
【参考方案6】:如果您希望可以重新设计整个按钮 UI
public class buttonUI extends javax.swing.plaf.basic.BasicButtonUI
buttonUI(JButton b)
b.setContentAreaFilled(false);
@Override
public void paint(Graphics g,JComponent c)
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
AbstractButton b = (AbstractButton) c;
g2d.setFont(font.deriveFont(11f));
Dimension d = b.getSize();
FontMetrics fm = g2d.getFontMetrics();
g2d.setColor(new Color(100,100,100));
String caption = b.getText();
int x = (d.width - fm.stringWidth(caption)) / 2;
int y = (d.height + fm.getAscent()) / 2 - 2;
g2d.drawString(caption, x, y);
在你的主要代码中使用类似
jButton1.setUI(new buttonUI(jButton1));
这就是我的使用方式..你也可以有自己的方式
【讨论】:
以上是关于如何在html中设置网页背景颜色的主要内容,如果未能解决你的问题,请参考以下文章