【问题标题】:Adding JavaFX TextField to JPanel将 JavaFX TextField 添加到 JPanel
【发布时间】:2015-11-14 01:52:47
【问题描述】:

我有一个 JPanel cPanel 和一个从 JDK 8 的 javafx.scene.control.TextField 导入的 TextField resultField。 现在想cPanel.add(resultField,BorderLayout.NORTH),Eclipse给我报错:

The method add(String, Component) in the type Container is not applicable for the arguments (TextField, String)

如何正确地将resultField 添加到cPanel

【问题讨论】:

  • JPanel 是一个摆动组件。添加一个 swing JTextField 比添加 JavaFX TextField 更有意义。
  • @willshackford 谢谢。这确实有道理。我想给resultField添加提示文字,但是JTextField不支持提示文字
  • 那么,还是改用javafx,而不是用java swing。
  • SwingLabs SwingX 库支持Prompt(和Buddy),如here所示

标签: java swing javafx jpanel


【解决方案1】:

但是 JTextField 不支持提示文本

您可以使用Text Prompt 类。

I 允许您指定在文本字段为空时显示的提示。只要您输入文本,提示就会被删除。

提示实际上是一个 JLabel,因此您可以自定义字体、前景等:

JTextField tf7 = new JTextField(10);
TextPrompt tp7 = new TextPrompt("First Name", tf7);
tp7.setForeground( Color.RED );

【讨论】:

  • 好的,这很好。我想知道为什么它不是 Swing 的一部分。
  • @DylanChen,它已被添加到 JavaFX,但不再开发 Swing。
  • @DylanChen Prompt 支持在 UI 中是一种“新”事物,Swing 是在 2000 年之前设计的,早年只添加了一些东西
【解决方案2】:

您可以下载swingx-core-1.6.2.jar并使用它来制作swing Text Fields的提示文字。

    PromptSupport.setPrompt("User ID", userNameField);
    PromptSupport.setFontStyle(Font.BOLD, userNameField);
    PromptSupport.setForeground(Color.BLACK, userNameField);
    PromptSupport.setFocusBehavior(PromptSupport.FocusBehavior.HIDE_PROMPT,
            userNameField);

从这里下载:http://www.java2s.com/Code/JarDownload/swingx/swingx-core-1.6.2.jar.zip

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 2011-12-18
  • 2013-08-08
相关资源
最近更新 更多