当a ProgressBar是不确定的时,它有一个来回的动画.这ProgressBar是正常的Stage一部分时工作正常但是当部分时不起作用Dialog.相反,它似乎只是坐在动画的开头.该ProgressBar确实,但是,适当的时候设置为某个确定的值更新.注意:该问题未出现在Java 8中.
没有任何例外情况的迹象.
这是一个MCVE(它的GIF):
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class App extends Application {
@Override
public void start(Stage primaryStage) {
Button detButton = new Button("Launch Determinate Task");
detButton.setOnAction(ae -> {
ae.consume();
createDialog(primaryStage, true)
.showAndWait();
});
Button indetButton = new Button("Launch …Run Code Online (Sandbox Code Playgroud) 正在抛出此异常;如何修复它?
java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @338aec90
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
at java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) ~[?:?]
at java.lang.reflect.Method.setAccessible(Method.java:193) ~[?:?]
at net.byteflux.libby.classloader.URLClassLoaderHelper.<init>(URLClassLoaderHelper.java:37) ~[LifeSteal-1.0.jar:?]
at net.byteflux.libby.BukkitLibraryManager.<init>(BukkitLibraryManager.java:28) ~[LifeSteal-1.0.jar:?]
at in.arcadelabs.lifesteal.handler.DependencyHandler.<init>(DependencyHandler.java:18) ~[LifeSteal-1.0.jar:?]
at in.arcadelabs.lifesteal.LifeStealPlugin.onLoad(LifeStealPlugin.java:39) ~[LifeSteal-1.0.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.loadPlugins(CraftServer.java:425) ~[purpur-1.19.jar:git-Purpur-1670]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:313) ~[purpur-1.19.jar:git-Purpur-1670]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1137) ~[purpur-1.19.jar:git-Purpur-1670]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307) ~[purpur-1.19.jar:git-Purpur-1670]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Run Code Online (Sandbox Code Playgroud)
我正在使用一个名为 libby 的依赖管理器库(https://github.com/Byteflux/libby),所以当我调用LibraryManager libraryManager = new BukkitLibraryManager();它时会出现异常
我正在使用 Hibernate 验证器来验证我的 bean。
实际上我对我的 POM 有这种依赖性
<!-- Hibernate validator - Bean validation API Implementation -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.11.Final</version>
</dependency>
<!-- Verify validation annotations usage at compile time -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.0.11.Final</version>
</dependency>
<!-- Unified Expression Language - Spec -->
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.1-b06</version>
</dependency>
<!-- Unified Expression Language - Implementation -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是我的豆子
import org.hibernate.annotations.ColumnDefault;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
public class Casa …Run Code Online (Sandbox Code Playgroud) java validation hibernate hibernate-validator javax.validation
当我们通过JLINK创建Java运行时需要的所有Java类/资源,并把它们变成JRT映像文件:lib/modules。
这是我使用的基本 Maven 项目资源结构:
src
main
resources
dict
xkcd_en
Run Code Online (Sandbox Code Playgroud)
我只是想阅读xkcd_en文本文件。如果我们查看 JRT 文件,它是:
>> jimage list /path/to/lib/modules
...
Module: main
dict/xkcd_en
...
Run Code Online (Sandbox Code Playgroud)
此外,我已明确在 中打开它module-info,以防万一:
module main {
opens dict;
// ..rest code omitted
}
Run Code Online (Sandbox Code Playgroud)
我可以读取文件的唯一方法是将其作为输入流获取:
作品:
public static InputStream getResourceAsStream(String resource) {
return FileUtils.class.getResourceAsStream(resource);
}
System.out.println(new BufferedReader(
new InputStreamReader(getResourceAsStream("/dict/xkcd_en")))
.lines().collect(Collectors.joining("\n"))
);
Run Code Online (Sandbox Code Playgroud)
不工作:
但是,如果我试图获取文件 URI 并通过 Java NIO API 读取它,则它不起作用:
public static URL getResourceOrThrow(String resource) {
URL url = FileUtils.class.getResource(resource);
Objects.requireNonNull(url);
return url;
}
Run Code Online (Sandbox Code Playgroud)
1 - …
我需要访问JDK 11中的旧式SOAP Web服务。但是我遇到了“找不到ProviderImpl”的问题。
JDK 11实现是:zulu11.2.3-jdk11.0.1-win_x64。
在我的build.gradle中,我具有以下依赖关系:
compile group: 'com.sun.xml.ws', name: 'jaxws-rt', version: '2.3.1', ext: 'pom', { force = true }
Run Code Online (Sandbox Code Playgroud)
我看到了:
javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:61) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:58) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:103) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:112) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.Provider.provider(Provider.java:96) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.Service.<init>(Service.java:112) ~[jaxws-api-2.3.1.jar:na]
Run Code Online (Sandbox Code Playgroud)
在https://github.com/javaee/metro-jax-ws/issues/1247之后,我尝试设置:
-Djavax.xml.ws.spi.Provider = com.sun.xml.ws.spi.ProviderImpl
但是我仍然得到:
javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:61) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:58) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:103) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.FactoryFinder.fromSystemProperty(FactoryFinder.java:122) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:99) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.spi.Provider.provider(Provider.java:96) ~[jaxws-api-2.3.1.jar:na]
at javax.xml.ws.Service.<init>(Service.java:112) ~[jaxws-api-2.3.1.jar:na] …Run Code Online (Sandbox Code Playgroud) I'm using Scene Builder (v11.0.0) to create FXML files for scenes in JavaFX (v12) but, despite instructing all containers to USE_COMPUTED_SIZE for the preferred widths and heights, the rendered scenes (as seen in Scene Builder and also when run as a JavaFX application which loads those FXML files) are being clipped at the right and bottom edges so that bits of nodes are chopped off.
And in Scene Builder it seems that the renderer must know that the scene won't …
从Files.isHidden(Path)(强调我的)文档中:
告诉文件是否被视为隐藏文件。隐藏的确切定义取决于平台或提供程序。例如,在UNIX上,如果文件名以句点字符(。)开头,则认为该文件是隐藏的。在Windows上,如果文件不是目录,并且设置了DOS hidden属性,则将其视为隐藏文件。
根据实现的不同,此方法可能需要访问文件系统以确定文件是否被视为隐藏。
由此我可以理解预期的行为是什么。但是,为什么这是预期的行为?
我想知道的原因是因为在行为之间的差异Files.isHidden,DosFileAttributes.isHidden以及Windows的资源管理器。例如,我可以进入文件资源管理器并将目录设置为隐藏,该目录将不再显示(除非我将其配置为显示隐藏的项目)。如果我测试上述目录是否被Java隐藏,则Files.isHidden返回false并DosFileAttributes.isHidden返回true。您可以使用以下代码对此进行测试:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.DosFileAttributes;
public class Main {
public static void main(String[] args) throws Exception {
final var directory = Path.of(args[0]).toAbsolutePath().normalize();
final var store = Files.getFileStore(directory);
final var dosAttrs = Files.readAttributes(directory, DosFileAttributes.class);
System.out.println("Directory : " + directory);
System.out.println("FileStore : " + store.name() + " [" …Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,其中饼图中的按钮单击数据旋转(10-12 点钟方向的切片移动到 12-2 等)。下面的代码(有点)有效,它会旋转,但会吃掉临时切片并产生整段错误。这是我第一次尝试 JavaFX,我不确定如何管理它。
private BorderPane layout;
private Scene scene;
ObservableList<PieChart.Data> pieChartData =
FXCollections.observableArrayList(
new PieChart.Data("Post-production age", 424236),
new PieChart.Data("Production age", 1030060),
new PieChart.Data("Production age2", 1030060),
new PieChart.Data("Production age3", 1030060),
new PieChart.Data("Pre-production age", 310319));
PieChart chart = new PieChart(pieChartData);
@Override public void start(Stage stage) {
layout = new BorderPane();
scene = new Scene(layout,720,480);
stage.setTitle("People");
stage.setWidth(500);
stage.setHeight(500);
Button button = new Button();
button.setText("rotate");
layout.setBottom(button);
layout.setCenter(chart);
button.setOnAction(e -> {
rotate();
});
chart.setStartAngle(90);
chart.setTitle("Economical age groups");
stage.setScene(scene);
stage.show();
}
public void rotate(){ …Run Code Online (Sandbox Code Playgroud) 在 JavaFX SceneBuilder 中,我希望将 Pane 的边框样式设置为仅位于右侧,因此我将以下内容放入 JavaFX CSS 样式框中: -fx-border-style: none Solid none none ,但它使整个边框可见。然后我发现,如果我将“none”作为第一个值,则边界将始终是完整的。
有人可以告诉我如何修复它,或者是否有其他方法可以做到这一点?
java ×9
javafx ×5
scenebuilder ×3
fxml ×2
nio ×2
hibernate ×1
hidden-files ×1
java-10 ×1
java-11 ×1
java-module ×1
validation ×1
web-services ×1
windows ×1