java - 如何在 JavaFX 8 中创建自定义组件?

标签 java javafx javafx-8

在 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/

相关文章:

java - getCanonicalHostName 非常慢

JavaFX:将多个 Hbox 添加到选项卡中的内容时出错

java - 如何在 JavaFX 中正确对齐按钮?

javafx-8 - TreeTableView 禁用父行中的任何单元格

java - 从命令行应用程序访问javafx剪贴板?

java - 循环内的扫描仪 - 为什么输入不正确时它不退出循环?

java - 使用 gwt-log 框架在 GWT 应用程序中的何处指定自定义日志文件名?

java - 如何防止线程在条件暂时不满足时被终止?

java - 更改 TornadoFX TableView 行背景颜色,同时仍突出显示所选行

animation - JavaFX ProgressBar 动画或过渡