在Java中,是否可以制作一个JPanel
跳过背景,使其背景透明(除了上面的组件之外)是透明的?
setOpaque(false)
它会将绘画背景传递给其父级,后者可能会绘制自己的背景。
您可以进行屏幕捕获,然后使用它来绘制面板的背景。
问题内容: 我如何告诉paint方法仅在JPanel上而不是在整个JFrame上绘制背景。我的JFrame大小大于JPanel。当我尝试为JPanel绘制网格背景时,网格似乎遍及整个JFrame,而不仅仅是JPanel。 以下是部分代码: 问题答案: camickr是正确的。所以: 您需要严格将工程图与不同组件分开。Swing已经在管理子组件,因此绝对不需要在Panel的Frame中实现图形(调用
我有一个程序,有多个层次,在底层我有一个JPanel,我把背景图像放在上面。除此之外,我还有一个JLayeredPane,其中包含一些可拖动的组件。我的问题是,当用户上传了背景图像时,可拖动的组件确实滞后了,我猜这是因为swing在拖动时一直在重新绘制背景图像。我的问题是,如果它无论如何,以确保图像没有重新绘制的所有时间?我在其中绘制图像的代码如下所示:
null 现在使用类:
通过使用启用透明背景功能,可以使用自定义图片作为背景。 controller.setTransparentBackground( true );
问题内容: 我正在使用类似于以下代码的内容: 我希望这可以使背景的不透明度为0.4,文本的不透明度为100%。相反,它们都具有0.4的不透明度。 问题答案: 儿童遗传不透明。如果他们不这样做,那将会很奇怪和不便。 您可以为背景图像使用半透明的PNG文件,也可以为背景颜色使用RGBa(alpha表示)颜色。 例如,50%的黑色背景褪色:
问题内容: 这是我的代码,它确实找到了图像,所以这不是我关心的问题,我关心的是如何使该图像成为面板的背景。我正在尝试使用Graphics,但是我不起作用,有什么想法吗?请?? 问题答案: 您的代码中有一个错误。在取消引用之前,将其设置为该行。这肯定会抛出一个。与其声明自己的Graphics对象,不如使用传递给要用于绘画的方法的那个。要在Swing中执行此操作,您应该实现绘制图像的方法,如下所示: