0

私はこの非常に単純な例を使用していますInfoOverlay:

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import org.controlsfx.control.InfoOverlay;

public class MainApp extends Application
{
    private InfoOverlay infoOverlay;

    public static void main(String[] args)
    {
        launch(args);
    }

    public Node getPanel(Stage stage)
    {
        String imageUrl = getClass().getResource("/styles/duke_wave.png").toExternalForm();
        ImageView image = new ImageView(imageUrl);

        String info = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
            + "Nam tortor felis, pulvinar in scelerisque cursus, pulvinar at ante. "
            + "Nulla consequat congue lectus in sodales.";

        infoOverlay = new InfoOverlay(image, info);

        infoOverlay.setShowOnHover(false);
        StackPane stackPane = new StackPane(infoOverlay);

        return stackPane;
    }

    @Override
    public void start(Stage stage) throws Exception
    {
        Scene scene = new Scene((Parent) getPanel(stage));

        stage.setTitle("JavaFX and Maven");
        stage.setScene(scene);
        stage.show();
    }
}

VBoxまたはBorderPaneに挿入したいInfoOverlay(image, info)。JavaDoc によると、次のデフォルト コンストラクターのみを使用します。

InfoOverlay()

InfoOverlay(Node content, String text)

InfoOverlay(String imageUrl, String text)

これを解決するのを手伝ってもらえますか?

4

1 に答える 1

0

テキストのみをサポートしているようです。(は、テキストが配置されるノードです。) 独自の実装を展開する (または機能をリクエストするNode) 必要があります。

于 2014-09-04T20:51:14.923 に答える