Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LayerUI,g.Draw带下划线的图像_Java_Image_Swing_Java 7_Jlayer - Fatal编程技术网

Java LayerUI,g.Draw带下划线的图像

Java LayerUI,g.Draw带下划线的图像,java,image,swing,java-7,jlayer,Java,Image,Swing,Java 7,Jlayer,给我的选择是 The method drawImage(Image, int, int, int, int, int, int, int, int, ImageObserver) in the type Graphics is not applicable for the arguments (Image, int, int, int, int, int, int, int, int, GraphicsBoard) 及 如果我运行它,上面的层(基本上是一个带按钮的JPanel)是不透明的 这就

给我的选择是

The method drawImage(Image, int, int, int, int, int, int, int, int, ImageObserver) in the type Graphics is not applicable for the arguments (Image, int, int, int, int, int, int, int, int, GraphicsBoard)

如果我运行它,上面的层(基本上是一个带按钮的JPanel)是不透明的

这就是我用来将JLayer添加到我的框架中的内容

Let 'GraphicsBoard' implement 'ImageObserver'

drawImage()
的最后一个参数必须实现
ImageObserver
接口。如果
LayerUI
这样做,您可以指定
this
。另一方面,考虑使用<代码> IIGIO.Read()/Cyto>同步读取图像,并指定<代码> null >代码>作为最终参数。

< P>最后的参数为“代码> DRAWMAGEMER())/代码>必须实现<代码> IMAGE观察器< /代码>接口。如果
LayerUI
这样做,您可以指定
this
。另一方面,考虑使用<代码> IIGIO.Read()/Cult>同步读取图像,并指定<代码> null >代码>作为最终参数。

如TaskVald所说,使用IMAIOO .Read()读取图像,然后可以将IMAGE观察者参数设置为NULL,并且不需要实现IMAGE观察器。< /P> 如果我运行它,上面的层(基本上是一个带按钮的JPanel)是不透明的

这是预期的行为。请注意他们是如何使用该行的

OverBoard overLay = new OverBoard();
GraphicsBoard graphicsBG = new GraphicsBoard();
add(new JLayer(overLay, graphicsBG));

实现透明度

正如垃圾神所说,使用ImageIO.read()读取图像,然后可以将ImageObserver参数设置为null,而不需要实现ImageObserver

如果我运行它,上面的层(基本上是一个带按钮的JPanel)是不透明的

这是预期的行为。请注意他们是如何使用该行的

OverBoard overLay = new OverBoard();
GraphicsBoard graphicsBG = new GraphicsBoard();
add(new JLayer(overLay, graphicsBG));

实现透明度

@trashgood这不是一个重要的问题,不是compiling@trashgod这不是一个导入问题,也不是编译问题。我知道,我在问如何解决这个问题,我不想实现ImageObserver,因为我甚至不知道如何使用它什么是
layerI
?当你尝试
this
null
时会发生什么。垃圾神:LayerUI必须是javax.swing.plaf.LayerUI(出现在Java 7中)也可以看到。我知道,我在问如何解决这个问题,我不想实现ImageObserver,因为我甚至不知道如何使用它什么是
LayerUI
?当您尝试
this
null
时会发生什么情况。垃圾神:LayerUI必须是javax.swing.plaf.LayerUI(出现在Java 7中)
OverBoard overLay = new OverBoard();
GraphicsBoard graphicsBG = new GraphicsBoard();
add(new JLayer(overLay, graphicsBG));
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .5f));