当前位置: 首页 > 知识库问答 >
问题:

Ubuntu无法显示用.css文件设计的GUI元素

姚钊
2023-03-14
Note: /.../.../.../.../nameOfClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint: unchecked for details.
Detected JavaFX Ant API version 1.3
Launching <fx:jar> task from /usr/lib/jvm/jdk1.8.0_161/jre/../lib/ant-javafx.jar
Warning: From JDK7u25 the Codebase manifest attribute should be used to restrict JAR repurposing.
         Please set manifest.custom.codebase property to override the current default non-secure value '*'.
Launching <fx:deploy> task from /usr/lib/jvm/jdk1.8.0_161/jre/../lib/ant-javafx.jar
No base JDK. Package will use system JRE.
No base JDK. Package will use system JRE.
jfx-deployment-script:
jfx-deployment:
jar:
jfx-rebuild:
BUILD SUCCESSFUL (total time: 3 seconds)
WARNING: Loading FXML document with JavaFX API of version 9.0.1 by JavaFX runtime of version 8.0.161

对.css文件的访问是通过SceneBuilder中的路径设置的。Scenebuilder将路径直接粘贴到.fxml文件中。例如:

<AnchorPane prefHeight="500.0" prefWidth="400.0" style="-fx-background-color: #EEEEEE;" stylesheets="@../styleSheets/loginStyle.css" xmlns="http://javafx.com/javafx/9" xmlns:fx="http://javafx.com/fxml/1" fx:controller="packagename.login.LoginController">

.css文件的内容:

/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/

.button {
    -fx-background-color:  #007399;
    -fx-text-fill: #FFFFFF;
    -fx-stroke: #FFFFFF;
}

.button:hover{
    -fx-background-color: #328fad;
}

.button:pressed{
    -fx-background-color: #005c7a;
}

有趣的是,我一打开scenebuilder中的.fxml文件,所有的东西都正确显示了。但是当我在Ubuntu上运行Netbeans的GUI时,按钮看起来就不一样了,或者没有显示出来。

我尝试了不同的本地Java版本:-java-8-openjdk-amd64-java-9-openjdk-amd64-jdk1.8.0_151-jdk1.8.0_161-jdk-9.0.4

我在:/netbeans-8.2/etc/Netbeans.conf下更改了Netbeans的Java版本,我尝试了上面所有的Java版本。Netbeans只在JDK1.8*稳定的情况下运行,但没有解决我的问题的方法。我不认为问题是因为Java版本。我的同事在Windows和MAC上使用相同的Java、Netbeans和Scenebuilder版本,并且它适用于他们。

我已经将我的桌面环境从gnome改成了xfce、kubuntu和Unity。但问题仍在继续。

最诚挚的问候

共有1个答案

柳豪
2023-03-14

最后我找到了解决办法。我使用了一个用SceneBuilder创建的“矩形”对象。“平滑”选项未选中。这导致了Linux机器下的bug。

isSmooth()的属性说明:
定义是否为此形状使用抗锯齿提示。如果该值等于true,则应用呈现提示。

若要解决此问题,请在
“Properties:Rectangle>Specific>Smooth”下将Smooth设置为“true

 类似资料:
  • 我有一个在IntelliJ的GUI设计器中制作的JTable组件。该类绑定到GUI窗体,编译没有问题,但表保持空状态。我也尝试使用一些其他代码,但我对java有点陌生,非常想知道答案。请不要给我半个答案或指给我一页去想它。我来这里是因为我试过了。

  • 主要内容:display: none,display: block,display: inline,display: inline-blockdisplay 属性是 CSS 中最重要的属性之一,主要用来控制元素的布局,通过 display 属性您可以设置元素是否显示以及如何显示。 根据元素类型的不同,每个元素都有一个默认的 display 属性值,例如 默认的 display 属性值为 block(块级元素),而 默认的 display 属性值为 inline(行内元素),您也可以手动将元素的

  • 我不确定这是java问题还是与ubuntu有关。我在ubuntu 14.04机器上,我有Java6(jdk_1.60_43)和Java7(jdk_1.70_51)。JAVA_HOME设置为java 7,这就是我的PATH环境变量所指的。所以Java版本会给我以下内容: 现在我通过下载安装脚本并运行它(https://www.ej-technologies.com/download/jprofile

  • 问题内容: 是否可以检查元素的CSS 或使用JavaScript? 问题答案: 元素具有一个属性,该属性可以告诉您想要什么,如果样式是内联声明的或使用JavaScript声明的: 将为您提供一个字符串值。 就像sdleihssirhc在下面说的那样,如果元素是被CSS规则继承或指定的,则需要获取其计算样式:

  • 我正在使用IntelliJ GUI Designer来生成一个GUI应用程序(第一次用户)。我尝试生成一些小的示例UI,并能够做到这一点。然而,今天尝试一些东西,应用程序提示我提供一个用户名和日期,我认为这在包文件中做了更改(我想)。从那以后,每当我生成一个新的GUI表单时,它都不会生成。java文件(只生成。form文件)。并给出了以下错误。

  • 我的.UI中有两个树视图。一个树视图是,另一个是。现在我已经编写了一个代码,它在`driveview中显示我的系统的驱动器。我是这样做的: 现在,当我单击中的特定驱动器时,它会显示其中的子文件夹。我基本上需要做的是迭代/遍历整个驱动器,并在里面搜索文件。基本上检查所有文件夹和子文件夹。一旦它找到文件,它就应该在我的另一个树视图中显示它们,即。我为它编写了如下代码: 每当我点击有mp3文件的子文件夹