Tag: 透明

如何使java.awt.Label背景透明?

我以前用javax.swing.JLabel做透明背景: lbl.setBackground(new Color(0, 0, 0, 0)); 。 但它不适用于java.awt.Label。 有没有简单的方法使标签透明? 更新: public class SplashBackground extends Panel { private static final long serialVersionUID = 1L; private Image image = null; /** * This is the default constructor */ public SplashBackground() { super(); initialize(); } /** * This method initializes this * */ private void initialize() { image […]

Java Swing透明的JPanels问题

我有一个JLayeredPane,我添加3个JPanels。 我使JPanels透明(没有设置背景和setOpaque(false))。 我在JPanels上绘制线条,只有最后一个JPanel上的线条可见。 通过顶级JPanel看不到其他JPanel的行(即使我在添加它们时添加了不同的zIndex)。 有谁知道这方面的解决方案? 他们为什么不透明? 我创建了一个小测试程序(3个类)。 (TestJPanel和TestJPanel1绘制一条线,但在不同的位置,但我只看到最后添加的JPanel的行。我没有看到2行,因为它不透明:() Main.Java import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLayeredPane; public class Main extends JFrame { public Main() { setSize(400, 350); setDefaultCloseOperation(EXIT_ON_CLOSE); JLayeredPane lp = getLayeredPane(); lp.setLayout(new BorderLayout()); TestJPanel top = new TestJPanel(); top.setOpaque(false); TestJPanel middle = new TestJPanel(); middle.setOpaque(false); TestJPanel1 bottom = new TestJPanel1(); bottom.setOpaque(false); […]

java applet:在两层2D场景中有一种简单的绘制和擦除方法吗?

我有一个applet,它使用圆和线显示一些数据。 随着数据不断变化,显示会更新,这意味着有时必须擦除圆圈和线条,所以我只是用白色(我的背景色)绘制它们以擦除它们。 (它们中有很多,所以擦除所有内容然后重新计算并重新绘制除擦除项目之外的所有内容将是一种非常慢的方法来擦除单个项目。) 情况的逻辑是需要显示两个层,我需要能够擦除一个层中的对象而不影响另一个层。 我认为上层需要具有“透明”的背景颜色,但是我将如何擦除对象,因为以透明颜色绘制无效。 这种情况与网络上所有与透明度相关的帮助的区别在于,我希望能够从透明层逐个擦除线条和圆圈,用“完全透明”的颜色覆盖它们的像素。 目前我的applet通过在start()中执行此操作来绘制(仅使用单个图层): screenBuffer = createImage(640, 480); screenBufferGraphics = screenBuffer.getGraphics(); 这在paint()中: g.drawImage(screenBuffer, 0, 0, this); 和对象通过以下命令呈现(或通过白色绘制“擦除”): screenBufferGraphics.drawLine(x1,y1,x2,y2); 是否容易以某种方式制作具有透明背景的第二个屏幕缓冲区,然后能够在该缓冲区中绘制和擦除对象并将其渲染到第一个缓冲区上?

使用透明背景保存缓冲图像

我将签名图像保存为.jpg图片。 我使用graphic2d在图像的每个像素上绘制(使用签名平板电脑获得)并且它完美地工作但我总是得到白色背景。 如果我想将签名放在PDF文档上,jpg图像的白色方块的边框覆盖了PDF的一些单词。 我想要的是用透明背景保存jpg图像,所以当我把它放在PDF上时,没有白色图像背景覆盖的文字,只有标记线。 这是保存缓冲图像的代码。 它用白色背景做到了。 // This method refers to the signature image to save private RenderedImage getImage() { int width = tabletWidth; int height = tabletHeight; // Create a buffered image in which to draw BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // Create a graphics contents on the buffered image Graphics2D g2d […]

如何让JPopupMenu透明化?

我想自定义JPopupMenu的外观,所以我在i上创建了一个扩展JPopupMenu类的自定义类覆盖了paintComponent方法,就像我需要自定义的任何组件一样。 public class CustomPopupMenu extends JPopupMenu { @Override public paintComponent(Graphics g) { //custom draw } } 我知道的唯一问题是我无法使JPopupMenu透明化。 我虽然setOpaque(false)就够了,我错了。 如何让JPopupMenu透明化?

如何使JTable的背景透明?

可能重复: Java swing表透明度 使JTable背景透明并不容易。 我只想查看我的单元格的文本内容。

Java透明面板和面板上的自定义效果

我想在我的GUI中使用透明面板(如果像Windows 7窗口标题一样,那就更好了)。 在我使用com.sun.awt.AWTUtilities之前 AWTUtilities.setWindowOpacity(frame, (float)0.90); 但它的参数是一个像JFrame的窗口,不能用于JPanel 。 另外,我希望在JPanel或JLabel上产生效果,例如发光,就像在Windows 7标题按钮上一样。 任何其他有趣的效果对我也有帮助。

在Java Graphics2D中绘制透明图像

我想在另一个上面绘制一个部分透明的图像(在物体上制作阴影)。 我目前正在使用java的Graphics2D类进行渲染,我被告知将复合设置为AlphaComposite,但这只是将它设置为完全透明。 我可以使用当前设置执行此操作吗? 我该怎么做才能解决这个问题? 这是我被告知的代码将使其部分透明: AlphaComposite ac = java.awt.AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.5F); g.setComposite(ac); (我顺便使用png图像) inheritance你的sscce(这些都是在不同的类,但我把它们放在一起以简化)(我在本地文件夹“Images”中使用一个名为“Test”的图像,你可以使用任何东西,只要它是一个png图像命名一样 import java.awt.AlphaComposite; import java.awt.Color; import java.awt.DisplayMode; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Window; import javax.swing.ImageIcon; import com.blazingkin.atrox.ScreenManager; public class AtroxAdventrum{ public static void main(String[] args) { new AtroxAdventrum().run(); } private static DisplayMode modes[] = { //new DisplayMode(1080,720,32,0), //new DisplayMode(1080,720,24,0), //new DisplayMode(1080,720,16,0), //new DisplayMode(1440,900,32,0), […]

Java:点击窗口(包括文本/图像)

我想在Java中创建一个透明的覆盖层, 始终在顶部 ,并且我可以点击 。 我发现了一些关于这个问题的类似 post ,但即使在听完他们的答案后,我也遇到了一个问题。 我的问题是让整个窗口点击。 我在使用JFrame时没有任何问题,但是一旦我向它添加任何组件 (JLabel或ImagePanel), 点击属性就不会延续到它们。 因为我想为我的应用程序提供一个背景图像,这基本上使我无法看到每当我单击文本/图像覆盖的区域时窗口如何聚焦的代码。 在我展示我正在使用的代码之前,我首先想要参考这些 线程 , 这些 线程基本上准确地描述了我想要的东西,除了在C#中。 我的目标是创建一个带有透明.png图像的叠加层和一些将在关键事件上更改的文本。 如果它使用JFrame或任何其他库无关紧要。 我只需要它与Windows兼容。 我还想提一下,我有一些Java经验,但是使用JFrame是一个新手。 import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingConstants; import com.sun.jna.platform.WindowUtils; public class Overlay { public static void main(String[] args) { JFrame frame = new JFrame(“Overlay Window”); frame.setUndecorated(true); frame.setAlwaysOnTop(true); frame.getRootPane().putClientProperty(“apple.awt.draggableWindowBackground”, false); frame.setLocation(400, 400); frame.getContentPane().setLayout(new java.awt.BorderLayout()); […]