在 Swing 中,可以通过扩展 JComponent
(或 JPanel
)来创建自定义组件(纯代码),为其提供布局,然后手动添加组件并公开一些发明的 getter 和 setter 来修改控件集。
但是我无法找到如何在 JavaFX 8 中执行此操作?我认为这一定是可能的,但文档要么没有这么先进,要么立即随 FXML 一起提供,而我对此还不感兴趣。
如果有帮助,这就是我想要的一个组件:
TextArea textArea = new TextArea();
TextField textField = new TextField();
BorderPane borderPane = new BorderPane();
textArea.setEditable(false);
borderPane.setCenter(textArea);
textField.addEventHandler(KeyEvent.KEY_RELEASED, keyEvent -> {
if (keyEvent.getCode() == KeyCode.ENTER) {
textArea.appendText(textField.getText() + System.lineSeparator());
messages.offer(textField.getText());
textField.clear();
}
});
borderPane.setBottom(textField);
最佳答案
看看这个伟大的video on Parleys
它显示三个选项:
- 如果控件已存在但只需要看起来不同,则只需使用自定义 CSS
- 扩展布局容器,例如 Region(Java 编码)
- 扩展控制(Java 编码)(适合制作库)
视频解释了其余大部分内容。祝你好运!
关于java - 如何在 JavaFX 8 中创建自定义组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979282/