【问题标题】:Center TextArea upon node hover in LineChart JavaFX?LineChart JavaFX中节点悬停时的中心TextArea?
【发布时间】:2017-05-07 21:30:38
【问题描述】:

我正在编写一个程序,该程序根据每日输入跟踪用户的情绪,将每个条目作为文本文件保存到文件夹中(包括输入的日期和时间,以及从 1 到 5 的情绪等级)并生成一个JavaFX 折线图,以进入日期为 x 轴,以心情为 y 轴,显示用户的心情如何随时间波动。

我刚刚成功添加了将鼠标悬停在 LineChart 上的任何节点上以在 TextArea 中显示相关条目的功能。我似乎无法解决的唯一问题是:如何将所述 TextArea 置于折线图中间?

因为发生的情况是 textarea 出现在与用户悬停的线图节点相同的位置,并导致靠近边缘的节点出现重大可读性问题(如下所示:TextArea overlaps with linechart borders

这是在悬停时创建 TextArea 的代码。如果您需要更多信息/代码 sn-ps,请告诉我,我会很乐意提供。任何帮助将不胜感激!

class HoveredThresholdNode extends StackPane {
    HoveredThresholdNode(String date, int mood, int index) {
      setPrefSize(13, 13);

      TextArea entry = createDataThresholdLabel(date, mood, index);

      setOnMouseEntered(new EventHandler<MouseEvent>() {
        @Override public void handle(MouseEvent mouseEvent) {

          /**
          *Right here is where I need to change the location of 
          *the TextArea on the linechart, but I don't know how
          */

          getChildren().setAll(entry);
          toFront();
        }
      });
      setOnMouseExited(new EventHandler<MouseEvent>() {
        @Override public void handle(MouseEvent mouseEvent) {
          getChildren().clear();
          setCursor(Cursor.DEFAULT);
        }
      });
    }

    private TextArea createDataThresholdLabel(String date, int mood, int index) {
        //Creates&returns TextArea, left out code as it's irrelevant
        //Don't worry about index parameter, it's just used for retrieving entry
    }
}

【问题讨论】:

  • 您是否尝试过将LineChart 放在StackPane 中,然后在VBox / HBox 中添加TextField 来为您进行居中?我使用这种技术在我的 JavaFx 应用程序中创建弹出窗口。在这种情况下,所有居中都由 JavaFx 处理。 (如果你需要一个例子,我可以试着做一个)
  • 嗯,有趣! Linechart 当前位于网格窗格中,但我没有将文本字段包装在任何布局中。我现在就试试!
  • 包装文本字段是否有效?
  • 是的,确实如此,感谢您的推荐!我的错,我又忘了在这里评论。
  • 我提交了我的评论作为答案,因此您可以将其标记为正确,以供以后可能偶然发现此问题的任何人:)

标签: java javafx hover textarea linechart


【解决方案1】:

尝试将 LineChart 放在 StackPane 中,然后添加一个包裹在 VBox / HBox 中的 TextField 来为您进行居中。我使用这种技术在我的 JavaFx 应用程序中创建弹出窗口。在这种情况下,所有居中都由 JavaFx 处理。结构如下所示:

  • 堆栈窗格
    • 折线图
    • VBox / HBox
      • 文本字段

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 2023-04-08
    • 2012-12-15
    • 1970-01-01
    • 2016-10-03
    • 2010-09-14
    • 1970-01-01
    • 2012-08-03
    • 2013-01-14
    相关资源
    最近更新 更多