我想在JavaFX FileChooser中设置文件过滤器,但我找不到办法.
我的代码:
FileChooser fc = new FileChooser();
fc.setTitle("My File Chooser");
File f = fc.showOpenDialog(primaryStage);
System.out.println(f);
Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的登录页面,我想将登录和密码参数作为UTF-8编码的字符串传递.正如你在下面的代码中看到的那样,第一行是我将编码设置为UTF-8的地方,但它似乎毫无意义,因为它不起作用.当我使用带重音的登录名和密码参数时,结果页面会收到奇怪的字符.
如何以适用于所有浏览器的方式正确设置字符编码?
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My Page</title>
</head>
<body>
<h1>Welcome to My Page</h1>
<form name="login" action="login.jsp" method="POST">
Login:<br/>
<input type="text" name="login" value="" /><br/>
Password:<br/>
<input type="password" name="password" value="" /><br/>
<br/>
<input type="submit" value="Login" /><br/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想调整窗口大小以适应窗口的内容.在Swing中有pack()
方法.在JavaFX中有类似的方法吗?
我想要做的是创建一个确认对话框.当我创建对话框时,它比内容更宽,所以我问自己是否需要类似pack方法的东西.
以下是正在发生的事情的屏幕截图:
这是我的代码:
mainClass.getPrimaryStage().setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(final WindowEvent e) {
e.consume();
final Stage dialog = new Stage();
dialog.setTitle("Confirm Before Exit");
dialog.setResizable(false);
dialog.initOwner(mainClass.getPrimaryStage());
dialog.initModality(Modality.APPLICATION_MODAL);
FlowPane buttons = new FlowPane(10,10);
buttons.setAlignment(Pos.CENTER);
Button yes = new Button("Yes");
Button no = new Button("No");
buttons.getChildren().addAll(yes, no);
VBox box = new VBox();
box.setAlignment(Pos.CENTER);
box.setSpacing(10);
box.getChildren().addAll(new Label("Do you really want to exit?"), buttons);
yes.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
Platform.exit();
}
});
no.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,我需要连接到数据库.数据库需要登录/密码,因此应用程序可以执行select和insert等操作.
在应用程序中,我需要使用登录名和密码连接到数据库,因此应用程序可以自由地在数据库上执行某些任务.我的问题是:如何在不泄露密码的情况下存储和使用密码连接数据库?
我不能简单地使用哈希或加密来存储密码,因为数据库必须识别密码(我认为大多数或所有数据库必须以纯文本形式接收密码).
.
.
注意:连接由应用程序进行.没有人工输入来进行连接.
(编辑)有关应用程序的更多信息:它是一个使用servlets/jsp的Web应用程序.数据库位于应用程序的同一服务器上.该应用程序的用户是没有完全管理员权限的默认用户,但它可以插入/删除行并执行涉及表中查询和数据修改的大多数操作.
我的JavaFX应用程序总是比Swing应用程序启动慢得多.比一个小应用程序可接受的速度慢得多.
这是"正常"还是我必须在某处进行更改?
编辑:我听说可能会影响JavaFX应用程序启动时间的一些代理问题,但我不知道如何调试它.
JavaFX 2不提供验证支持(掩码,输入过滤等......).采用不提供基本功能的技术是很困难的.我正在尝试实现自己的验证器,但这是一个很大的痛苦.
JavaFX 8中有关于验证的新闻吗?我试图找到新的功能,但我不知道在哪里搜索,很难找到JavaFX 8中究竟会发生什么变化.我需要了解它,因为我正在考虑将JavaFX用于新的应用程序.
我有以下代码:
Parent parent = FXMLLoader.load(Main.class.getResource("JanelaPrincipal.fxml"));
Run Code Online (Sandbox Code Playgroud)
在fxml文件中有一个对控制器类的引用.如何获取控制器对象?
FXML:
<AnchorPane id="AnchorPane" fx:id="root"
prefHeight="768.0" prefWidth="1024.0" xmlns:fx="http://javafx.com/fxml/1"
xmlns="http://javafx.com/javafx/2.2"
fx:controller="br.meuspila.javafx.JanelaPrincipalController">
...
Run Code Online (Sandbox Code Playgroud) 我正在使用JavaFX Scene Builder构建JavaFX应用程序.界面是在Scene Builder中创建的,并创建了一个FXML文件(main.fxml).
要在我的应用程序中使用该接口,我必须使用FXMLLoader加载FXML文件,但是有一个问题因为load()方法返回一个Object,并且要构建一个Scene我需要一个Parent类的实例.
下面是我的MainClass的一部分.编译器发出错误,因为页面不是Parent类型:
Object page = FXMLLoader.load(MainWindowController.class.getResource("main.fxml"));
Scene scene = new Scene(page);
primaryStage.setScene(scene);
primaryStage.show();
Run Code Online (Sandbox Code Playgroud)
如何使编译和运行正确?
这是FXML文件(main.fxml):
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<VBox prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<MenuBar minHeight="21.0" prefHeight="21.0" prefWidth="600.0">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete" /> …
Run Code Online (Sandbox Code Playgroud) 我试图在我的JavaFX应用程序中找到像JSpinner一样的微调器组件,但是没有这样的组件.
您建议我使用什么JavaFX组件代替微调器?
如何设置JavaFX TextArea的标签宽度?
当我在TextArea中使用制表(Tab键)时,制表的宽度很宽.我想控制宽度,即使用4个空格.在文档中,我找不到一种方法来执行此操作.
我尝试了这个代码(其中taInput是一个TextArea),但它不能正常工作:
taInput.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent e) {
if (e.getCode() == KeyCode.TAB) {
// TAB SPACES
StringBuilder sb = new StringBuilder(config.getTabSpacesCount());
for (int i=0; i<config.getTabSpacesCount(); i++) {
sb.append(' ');
}
taInput.insertText(taInput.getCaretPosition(), sb.toString());
e.consume();
}
}
});
Run Code Online (Sandbox Code Playgroud)