我正在尝试在JavaFX中编写一个透明阶段。 (这正在工作)。但是我不希望鼠标单击通过。有趣的是,我的代码在Windows上有效,但在Linux上却无效。我的问题是为什么我会观察到这种差异(尽管javafx beeing被设计为多平台库)以及如何修复代码以使其在Linux和Windows上均可工作。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.scene.paint.Color;
import javafx.application.Platform;
public class Main extends Application {
final Text text1 = new Text(10, 40, "Hello World!");
text1.setFont(new Font(40));
final Group g = new Group(text1);
final Scene scene = new Scene(g);
final Color c = new Color(0.0, 0.0, 0.0, 1.0 / 250);
stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(c);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
请注意:如果将final Color c = new Color(0.0, 0.0, 0.0, 1.0 / 250);
设置为final Color c = new Color(0.0, 0.0, 0.0, 0.0);
,则单击也会在Windows上进行。但是,只要这种不透明性不明显,我就可以忍受这种小的不透明性。