我有一个Graphics2D
对象,我想设置对象的背景。它有一个setBackground
方法,它有一个Color参数。这样我就可以设置背景的颜色。
我的问题是:如何设置对象背景的透明度?我可以以某种方式告诉它完全透明吗?我可以以某种方式告诉它完全不透明吗?我可以告诉它有0.8透明度/不透明度吗?如何设置这些值?
我已经看到有一些名为TRANSLUCENT
和OPAQUE
的预定义值,但我不知道如何使用它们。
也许正确的用法是使用int参数调用Color的构造函数?
答案 0 :(得分:18)
您可以通过指定透明度来构造Color对象。例如,以下代码构造具有50%透明度的RED颜色
Color c=new Color(1f,0f,0f,.5f );
答案 1 :(得分:4)
您可以通过以下方式调用Color的构造函数:
Color c = new Color(r,g,b,a);
其中a是alpha(透明度)值。
与所有Java类一样,您可以在官方API中找到此信息:http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html
这是一个非常好的资源,可以让你在这里等待答案。
答案 2 :(得分:2)
Java实际上非常擅长这些东西,你可以实现透明度等等。这是来自oracle的简单透明窗口copied的一些代码:
package misc;
import java.awt.*;
import javax.swing.*;
import static java.awt.GraphicsDevice.WindowTranslucency.*;
public class TranslucentWindowDemo extends JFrame {
public TranslucentWindowDemo() {
super("TranslucentWindow");
setLayout(new GridBagLayout());
setSize(300,200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Add a sample button.
add(new JButton("I am a Button"));
}
public static void main(String[] args) {
// Determine if the GraphicsDevice supports translucency.
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
//If translucent windows aren't supported, exit.
if (!gd.isWindowTranslucencySupported(TRANSLUCENT)) {
System.err.println(
"Translucency is not supported");
System.exit(0);
}
JFrame.setDefaultLookAndFeelDecorated(true);
// Create the GUI on the event-dispatching thread
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TranslucentWindowDemo tw = new TranslucentWindowDemo();
// Set the window to 55% opaque (45% translucent).
tw.setOpacity(0.55f);
// Display the window.
tw.setVisible(true);
}
});
}
}
查看here了解更多信息。
答案 3 :(得分:2)
jPanel1.setBackground(new Color(0,0,0,200));
/*This will put a transparent black color on a panel, the important part of the code is: .setBackground(new Color(0,0,0,200));*/
答案 4 :(得分:0)
如果您使用的是JPanel,可以试试这个: 的 jPanel1.setOpaque(假); 强>
答案 5 :(得分:0)
如果要提供透明效果,请对4个变量使用“颜色”属性:
this.setBackground(新颜色(0,0,0,.5f));
这为前三个参数(* new Color(** 0,0,0,**。5f)*)提供了 background 的RGB颜色,第四个参数用于确定不透明度百分比( opaque )
如果不希望显示 background ,请使用值 null
this.setBackground(null);
许多使用setOpaque(false);但这会占用填充而不是背景。
答案 6 :(得分:0)
像这样使用颜色的构造函数:
Color color = new Color(152,251,152, 50);
值 50 用于透明度。