我想在JavaFX应用程序中禁用特定时间的按钮.有没有选择这样做?如果没有,是否有任何解决方法?
以下是我的应用程序代码.我试过Thread.sleep,但我知道这不是阻止用户点击下一个按钮的好方法.
nextButton.setDisable(true);
final Timeline animation = new Timeline(
new KeyFrame(Duration.seconds(delayTime),
new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
nextButton.setDisable(false);
}
}));
animation.setCycleCount(1);
animation.play();
Run Code Online (Sandbox Code Playgroud) 我在 TextField 上选择正确的操作时遇到问题。在 Java 类上:
@FXML
private TextField projectNameInput;
@FXML
private void clearProjectName(MouseEvent event) {
// some if - else statements
projectNameInput.clear();
}
Run Code Online (Sandbox Code Playgroud)
在 FXML 上,它看起来像这样:
<TextField fx:id="projectNameInput" onMouseClicked="#clearProjectName" GridPane.columnIndex="1">
Run Code Online (Sandbox Code Playgroud)
我尝试了大多数选项,在 Java 中我尝试过(作为 arg)Event、MouseEvent、ActionEvent,结合 FXMLonAction等,但没有运气。我应该选择什么样的动作,当我在 TextField 上单击鼠标按钮时它会自动清除?
我正在做一些测试工作,需要使用JUnit中我不熟悉的功能.为了更好地理解这些功能,我希望能够在我的项目中查看IntelliJ内部的JUnit源代码.
这个项目使用Maven.我对pom.xml文件中列出的jUnit有以下依赖关系:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我在命令行上运行"mvn clean install"时,jUnit源从我公司的Maven存储库下载到我的本地Maven存储库(.m2目录).然后该项目编译并运行没有问题.
右键单击pom.xml文件并选择Maven-> Reimport后,我可以看到jUnit的类,源和javadoc也出现在IntelliJ的库设置中:

但是,当我尝试在IntelliJ中打开一个jUnit类文件并单击"下载源"链接时,我看到:

似乎IntelliJ应该在本地找到这些来源.即使它确实必须从我公司的存储库下载它们,我也相信它应该在那里找到它们,因为那是我本地存储库中的junit-4.10-sources.jar文件最初来自的地方.
什么可能使IntelliJ无法加载它已经知道的JAR文件中的源代码?
在我的Java GUI中,我大约有50个标签。所有这些都将使用CSS样式进行格式化。但是有5种我想使用ColorPicker更改字体颜色的方法:
Color ch = lineCommentColorPicker.getValue();
if (ch != null) {
lineCommentColorLabel.setTextFill(ch);
}
Run Code Online (Sandbox Code Playgroud)
我的问题。如何避免使用setTextFill方法设置的颜色再次被为类“ .label”定义的CSS样式规则覆盖。
.label {
-fx-text-fill: black;
-fx-font-weight: bold;
-fx-font-size: 12;
}
Run Code Online (Sandbox Code Playgroud) 我尝试使用Controls FX和Check List View组件,但是我有几个关于如何使用它的问题:
CheckListView,如何在默认情况下选择它?我想我必须使用setCheckModel,但我迷路了.checkBox某个事件时如何处理事件?我不知道该怎么做,因为我处理的事件是在节点上而不是在节点上checkBox.我不明白如何使用eventHandler这个组件.编辑:这是我做的:
departureCheckListView.setItems(myListAirport.getObservableDepartureAirtport());
departureCheckListView.getItems().addListener(new ListChangeListener<String>() {
@Override
public void onChanged(Change<? extends String> c) {
c.next();
if (c.wasAdded()) {
System.out.println(c.getAddedSubList().get(0));
//departureCheckListView.getSelectionModel().select(c.getAddedSubList().get(0));
Platform.runLater(new Runnable() {
@Override
public void run() {
departureCheckListView.getCheckModel().check(c.getAddedSubList().get(0));
}
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
检查我添加的第一个项目,但是后面的项目.
我不知道这是否有帮助,但我的清单已经整理好了.
我想开发一个使用controlsfx Notifications 在系统托盘模式下显示一些通知的应用程序。在正常模式下,我的应用程序运行良好并且可以成功显示通知。但是当我在系统托盘中隐藏 stage 时,会发生 NullPointerException。我不知道如何解决这个问题。
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionListener;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class TryIconNotification extends Application {
private boolean firstTime;
private TrayIcon trayIcon;
@Override
public void start(Stage stage) throws Exception {
firstTime = true;
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
createTrayIcon(stage);
firstTime = true;
Platform.setImplicitExit(false);
stage.setScene(scene);
stage.show();
}
public void createTrayIcon(final Stage …Run Code Online (Sandbox Code Playgroud) 我有 2 个矩形代表我的 Pong 游戏的桨。我对一个矩形使用 W/S,对第二个矩形使用 UP/DOWN。当我按 W 移动一个矩形,然后按 UP 移动第二个矩形时,第一个矩形将停止移动,然后第二个矩形将移动。如何使两个矩形可以同时移动?
GraphicsContext gc;
Rectangle player11;
Rectangle player22;
Circle ball;
private int y1;
private int p1y = 381;
private int y2;
private int p2y = 381;
AnimateObjects animate;
Canvas canvas;
private AnimationTimer timer = new AnimationTimer() {
public void handle(long now) {
// update paddle positions
p1y += y1;
p2y += y2;
if (p1y < 0) {
p1y = 0;
}
if (p2y < 0) {
p2y = 0;
}
player11.setY(p1y); …Run Code Online (Sandbox Code Playgroud) 这是我的两个代码片段:
public class Uploader {
private static final String SHA_256 = "SHA-256";
public String getFileSHA2Checksum(InputStream fis) throws IOException {
try {
MessageDigest md5Digest = MessageDigest.getInstance(SHA_256);
return getFileChecksum(md5Digest, fis);
} catch (NoSuchAlgorithmException e) {
return "KO";
}
}
public void transferTo(InputStream fis) throws IOException {
FileUtils.copyInputStreamToFile(fis, file2);
}
Run Code Online (Sandbox Code Playgroud)
我的代码使用此类:
是否有可能copyToFile同时calculateChecksum杠杆InputStream开放?
我的pom.xml包含以下内容来创建具有所有依赖项的项目的 jar。
现在我有一个src/main/resources运行应用程序所必需的属性文件(我想从 IDE 开始使用它),但我不想将其发送到创建的 jar 文件中,因为设置是单独维护的。
问题:如何获取包含所有依赖项的文件,但排除这些属性文件?
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>x.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud) java ×7
javafx ×6
controlsfx ×2
javafx-2 ×2
maven ×2
color-picker ×1
colors ×1
css ×1
java-io ×1
java-nio ×1
keyboard ×1
label ×1
system-tray ×1