Java JFrame设置自定义不透明度
如何从用户输入(比如从微调器)更改jframe的不透明度Java JFrame设置自定义不透明度,java,jframe,Java,Jframe,如何从用户输入(比如从微调器)更改jframe的不透明度 int opacity = 7; double dOpacity = opacity/10; String sOpacity = Double.toString(dOpacity)+"f"; this.setOpacity(sOpacity); //??? 上面的代码会产生一系列错误。有没有办法得到一个不透明度数字,比如说6,然后把它转换成一个“this.setOpacity(sOpacity);”的值你会接受吗 错误: Excepti
int opacity = 7;
double dOpacity = opacity/10;
String sOpacity = Double.toString(dOpacity)+"f";
this.setOpacity(sOpacity); //???
上面的代码会产生一系列错误。有没有办法得到一个不透明度数字,比如说6,然后把它转换成一个“this.setOpacity(sOpacity);”的值你会接受吗
错误:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: GuiClock.Main.setOpacity
at GuiClock.Main.cinitComponents(Main.java:97)
at GuiClock.Main.<init>(Main.java:16)
at GuiClock.Main$6.run(Main.java:168)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
线程“AWT-EventQueue-0”java.lang.RuntimeException中的异常:不可编译的源代码-错误的符号类型:GuiClock.Main.setOpacity
位于GuiClock.Main.cinitComponents(Main.java:97)
在GuiClock.Main。(Main.java:16)
在GuiClock.Main$6.run(Main.java:168)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
在java.awt.EventQueue.access$200(EventQueue.java:103)
位于java.awt.EventQueue$3.run(EventQueue.java:694)
在java.awt.EventQueue$3.run(EventQueue.java:692)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
您正在向setOpacity方法插入一个字符串作为参数,该方法只接受双精度。该方法使用一个float
作为参数。您正在传递一个字符串
尝试
this.setOpacity(Float.parseFloat(sOpacity))代码>在您的代码中:dOpacity=0.0
int opacity = 7;
float dOpacity = (float)opacity/10; //casting to float , here dOpacity=0.7
String sOpacity = Float.toString(dOpacity)+"f"; // sOpacity="0.7f"
this.setOpacity(Float.parseFloat(sOpacity)); //setOpacity(0.7f);
你得到了什么错误?@MadProgrammer发布了错误,但我认为这更多的是语法问题。不幸的是,这不起作用,不会产生错误,但是jframe的不透明度为0,即使输入应该显示为其他。我尝试使用了双精度,然而,它仍然只接受以下形式的内容:0.7f0.7f不是字符串,它表示0.7浮点。尝试浮动容量=(浮动)不透明度/10;例如,您也可以说:双重密度=0.7f;因为double实际上是一个更大的浮点。不确定为什么需要将浮点
转换为字符串
,而不是直接使用dOpacity
值…但这只是我的问题。。。