JavaFX允许通过FileChooser选择文件并通过DirectoryChooser选择目录,但是如何允许它同时选择两者?
类似于Swing的JFileChooser.FILES_AND_DIRECTORIES选项.
目前我只是直接使用JFileChooser,但它并不是一个很好的视觉匹配:
JFileChooser chooser = new JFileChooser(".");
chooser.setMultiSelectionEnabled(true);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int ret = chooser.showOpenDialog(null);
if(ret == JFileChooser.APPROVE_OPTION) {
File[] files = chooser.getSelectedFiles();
...
}
Run Code Online (Sandbox Code Playgroud) 我想检索Gridpane中一个特定单元格的内容.我把按钮放在了细胞中
setConstraints(btt , 0 ,1 )
setConstraints(btt , 0 ,2 )
getChildren().add....
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这GridPane.getChildren.get(10)是不好的.我想直接进入单元格(4,2)并获取其内容.
我已经创建了一个简单的JavaFX应用程序,但是我希望主窗口在用户单击按钮时打开辅助窗口.
实现这一目标的最简单方法是什么?
假设我有这样的情况:我有一个TableView(tableAuthors)有两个TableColumns(Id和Name).
这是AuthorProps POJO,用于TableView:
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
public class AuthorProps {
private final SimpleIntegerProperty authorsId;
private final SimpleStringProperty authorsName;
public AuthorProps(int authorsId, String authorsName) {
this.authorsId = new SimpleIntegerProperty(authorsId);
this.authorsName = new SimpleStringProperty( authorsName);
}
public int getAuthorsId() {
return authorsId.get();
}
public SimpleIntegerProperty authorsIdProperty() {
return authorsId;
}
public void setAuthorsId(int authorsId) {
this.authorsId.set(authorsId);
}
public String getAuthorsName() {
return authorsName.get();
}
public SimpleStringProperty authorsNameProperty() {
return authorsName;
}
public void setAuthorsName(String authorsName) …Run Code Online (Sandbox Code Playgroud) JavaFX中是否有一种方法可以为标题栏和操作系统任务栏设置不同的应用程序图标?
问题是系统任务栏中显示的图标与标题栏中的图标相比要大得多,并且系统无法正确调整它们的大小.
我想为不同的图标大小使用不同的图像.与您在.ico文件中的操作类似.
如果我打了stage.getIcons().add(...)两次电话,那么前一个图像将始终用于两个条形图.
为此,我还无法使用已存在的.ico文件(支持不同大小).
我一直在研究使用JavaFX的软件,我有一个愚蠢但令人担忧的问题.
在代码的某些部分,我有一个HBox,并且在其中有三个项目:a image,a label和a VBox.
问题是,我想有image左对齐,就是旁边的左边距window,并VBox靠右对齐,就是旁边的右边界window,我不知道如何去做吧.
我试过用VBox.setAlignment(Pos.RIGHT_CENTER),但是没用.
我想知道如何设置JavaFX Spinner的值,因为我还没弄清楚.
我知道使用Swing你可以使用spinner #setValue但它似乎与JavaFX不同.
@FXML
private Spinner<Integer> spinner;
Run Code Online (Sandbox Code Playgroud) 我正在使用JavaFX,Gradle,javafx-gradle-plugin构建Java桌面应用程序.此应用程序连接到我也构建的服务器.当我编译发布版本,运行时gradle jfxNative,我希望它与生产服务器通信; 但除此之外,我希望它与localhost交谈.
什么是正确的Java/Gradle处理方式?某种编译配置文件?
我在使用javafx加载由三星Galaxy S7边缘拍摄的JPEG图像时遇到问题(图片可在https://www.dropbox.com/s/w6lvdnqwcgw321s/20171122_140732.jpg?dl=0获得).我正在使用Image类来加载图像.
import java.io.FileInputStream;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class JPEGProblem extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage window) throws Exception {
Image img = new Image(new FileInputStream("/path/to/image.jpg"));
if (img.getException() != null)
throw img.getException();
ImageView imgView = new ImageView(img);
window.setScene(new Scene(new Pane(imgView)));
window.show();
}
}
Run Code Online (Sandbox Code Playgroud)
试图加载图像的构造函数调用在错误流上打印以下错误消息:
2018年2月4日晚上11:48:23 com.sun.javafx.tk.quantum.PrismImageLoader2 $ PrismLoadListener imageLoadWarning警告:顺序JPEG的SOS参数无效
我从image对象获得的异常是一个IOException,其中包含以下消息:
不支持的标记类型0x65
我做了一些研究,事实证明,这是三星手机拍摄的全景图像的一个已知问题.正如在这个帖子中指出的那样:https://forums.adobe.com/thread/2131432,一些0xFF字节,表示后面的字节是元信息而不是实际数据,不会通过添加以下0x00字节来转义0xFF.
但是我试着编写操作图像数据的代码,以便添加丢失的0x00字节,但结果比预期的要复杂得多,我不想编写自己的JPEG解析器/加载器.
有些程序可以显示那些无效的JPEG图像,例如Microsoft Fotos或Paint.看起来他们容忍这些无效图像,将这些虚假标记视为内容数据.
有没有办法用java加载这些无效的图像,而不用自己处理单个字节?
我试图在JavaFX中显示GridPane场景的网格线,但尽管调用它们仍未显示setGridLinesVisible(true).我究竟做错了什么?
我想在程序的主菜单上显示网格线,所以我可以告诉它在哪里放置节点.不幸的是,当我运行程序时,显示的所有内容都是带有单个按钮的空白屏幕.
我的MainMenu课程:
package screens;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
/**
* Creates the main menu Pane object and returns it.
* @author LuminousNutria
*/
public class MainMenu {
public MainMenu() {}
public Pane getPane() {
GridPane grid = new GridPane();
grid.setGridLinesVisible(true);
Button bttn = new Button("button");
grid.add(bttn, 2, 2);
return grid;
}
}
Run Code Online (Sandbox Code Playgroud)
我的主要课程:
package mainPackage;
import screens.*;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
/**
* Displays the Pane.
* @author LuminousNutria
*/
public class Main …Run Code Online (Sandbox Code Playgroud)