我正在使用此代码来实现选择侦听器:
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<DynamicTreeNodeModel>>()
{
@Override
public void changed(ObservableValue<? extends TreeItem<DynamicTreeNodeModel>> observable, TreeItem<DynamicTreeNodeModel> oldValue, TreeItem<DynamicTreeNodeModel> newValue)
{
System.out.println("Selected Text : " + newValue.getValue());
........
}
}
Run Code Online (Sandbox Code Playgroud)
我只想在用鼠标左键单击时才使用更改侦听器.我怎么能这样做?
我想在 TitlePana 中添加几个 TreeView。
private static TitledPane pane = new TitledPane("Connections", null);
public static void initTree(String name)
{
pane.setContent(tree(name));
}
pane.setContent(<node>);
Run Code Online (Sandbox Code Playgroud)
但是当我添加 TreeView 时,新节点总是替换旧节点。这是设计问题吗。知道这是一个代码问题吗?
好吧,所以我注意到了(我假设由于安全漏洞)Java决定强迫人们让他们的java软件签名,传闻许可证价格在100美元到300美元之间.这应该取决于您经历的授权被许可人.然而,我正在学习JavaFX,如果我不能与世界免费分享我的软件,那么学习它有什么意义呢?
问题是在线或离线javafx应用程序是否也是如此?让我感到困扰的是,我可能需要自掏腰包支付现金并对我的软件进行测试和通过,以便对其进行验证,以便任何人都可以将其从计算机上运行.我开始考虑这个因为我刚刚开始我的第一个真正的JavaFX项目.这是一个扑克游戏,并将有各种风格的扑克,甚至可能包括二十一点.真的让我失望的是,除了我,有可能没有人会玩它.有人可以解释一下这个剧烈的变化以及它对开发人员的启动意味着什么?
我正在为我的应用程序创建一个自定义TitleBar,我正在为我实现Minimize && Maximize && Close按钮Stage.我通过使用TRANSPARENT StageStyle
我最大化这种方式
Stage.setHeight(Screen.getPrimary().getVisualBounds().getHeight()-Margins);
Stage.setWidth(Screen.getPrimary().getVisualBounds().getWidth() -Margins);
Stage.setX(1.0);
Stage.setY(0.0);
// let others know about it
Run Code Online (Sandbox Code Playgroud)
我这样关闭
// stop all custom stuffs
Stage.close();
Run Code Online (Sandbox Code Playgroud)
&&我想最小化任何方式来实现?
最小化是我的问题..我已经尝试了,我试过hide(),toBack()- (如果你在屏幕上有成堆的窗户,这似乎说服你)他们都不工作
我正在使用VisualVM来分析一个javafx 8应用程序,该应用程序执行一些绘图并使用比我想要的更多的内存.它似乎没有泄漏,但由于某种原因,我的总堆永远不会减少,即使我使用的堆上升和下降,因为我选择不同的文件来图形.所有的峰值都是当我绘制一个新文件然后在我退出该屏幕时退回时,但总堆刚刚开始并保持不变.这是正常的吗?

我要在进行鼠标单击事件时更改VBox的背景(聚焦)颜色,而其他(兄弟)事件应该更改为其他(未聚焦)颜色。
所以,我在下面这样编码。
首先,我用一些VBoxes创建一个ObservableList。
public class ManagerWorldController implements Initializable {
@FXML
private BorderPane borderPane;
@FXML
private AnchorPane anchorPane;
@FXML
private VBox menuVBox1;
@FXML
private VBox menuVBox2;
@FXML
private VBox menuVBox3;
@FXML
private VBox menuVBox4;
@FXML
private VBox menuVBox5;
@FXML
private VBox menuVBox6;
@FXML
private VBox menuVBox7;
@FXML
private VBox menuVBox8;
@FXML
private VBox menuVBox9;
@FXML
private VBox menuVBox10;
@FXML
private VBox menuVBox11;
// ObservableList<VBox> menuVBoxList = FXCollections
// .observableArrayList(menuVBox1, menuVBox2, menuVBox3, menuVBox4, menuVBox5, menuVBox6, menuVBox7, menuVBox8, menuVBox9, menuVBox10, menuVBox11);
@Override
public …Run Code Online (Sandbox Code Playgroud) 您好,感谢您抽出宝贵时间来研究这个问题。
我无法访问与src文件夹平行的文件夹中的文本文件(有关结构,请参见下文)。
我发现最接近的解释是:https : //www.cis.upenn.edu/~matuszek/cit597-2006/Pages/finding-files.html ,我遇到了许多类似的问题,但我都没有不幸的是可以推断出答案。
我知道我可以使用绝对路径,但是我想确保该软件可以在其他人的计算机上运行,所以这是不行的。因此,我试图使其与相对路径一起使用。
另外,建议在这里进行以下建议:https : //coderanch.com/t/464197/java/java/Reading-files-directory-giving-relative为了使此代码在JAR文件中起作用,必须使用getResourceAsStream()。有人可以建议吗?
我正在尝试从RecipeReader.java中访问Recipes.txt,到目前为止,这是我的代码:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedReader input = new BufferedReader(new FileReader(path));
Run Code Online (Sandbox Code Playgroud)
并类似地写入同一文件:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedWriter output = new BufferedWriter(new FileWriter(path));
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助!
罗宾
我想整合JavaFX和CDI.网上有一些关于这些的好例子:
https://dzone.com/articles/fxml-javafx-powered-cdi-jboss http://fxapps.blogspot.com.br/2017/10/using-cdi-20-in-javafx-application.html
但是,我看到的所有示例都不能在现实世界中工作,因为它们无法注入多个Stage(primaryStage),如果它们是,我不知道如何.
所以我想知道在JavaFX/CDI项目中是否可以注入多个Stage(例如在模态窗口中使用......)
谢谢!
我已经提供了一个类,它创建了一个按钮布局,但只有文本内部.我想知道是否还有相应的图标添加到按钮:
public ShapeButtons(View view){
String[] buttonLabels = { "Circle", "Rectangle", "Square", "Squiggle", "Polyline" };
for (String label : buttonLabels) {
Button button = new Button(label);
button.setMinWidth(100);
this.add(button, 0, row);
row++;
button.setOnAction(this);
}
Run Code Online (Sandbox Code Playgroud)
对于按钮的构造函数,我知道有一种方法可以做Button(文本,节点图形),但我似乎无法弄清楚如何做到这一点?
我有一个闪屏:
我需要有进度条的动画(Indeterminate),但它不起作用.
这可能是因为我的线程在我的initilize方法中运行.
public class splashscreenController implements Initializable {
@Override
public void initialize(URL location, ResourceBundle resources) {
new SplashScreen().run();
}
class SplashScreen extends Task {
@Override
public Object call() {
Platform.runLater(new Runnable() {
@Override
public void run()
Parent root = null;
try {
Thread.sleep(3000);
root = FXMLLoader.load(getClass().getResource("../gui/NewUI.fxml"));
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
Stage stage = new Stage();
stage.initStyle(StageStyle.UNDECORATED);
assert root != null;
Scene scene = new Scene(root, 1280, 720);
stage.setScene(scene);
stage.show();
MainJavaFx.setPrimaryStage(stage);
((Stage) panParent.getScene().getWindow()).close();
}
}); …Run Code Online (Sandbox Code Playgroud) javafx-8 ×10
java ×6
javafx ×6
javafx-2 ×3
button ×1
cdi ×1
classloader ×1
java-8 ×1
performance ×1
text-files ×1
visualvm ×1