javafx如何设置文本框TextArea背景色为透明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javafx如何设置文本框TextArea背景色为透明相关的知识,希望对你有一定的参考价值。

想要用javafx做一个对话框如下图所示:

如何才能让右边的额TextArea的背景色完全透明呢,就是和Label一样(这里不用Label的原因是想要实现文本选择和复制的功能),如何实现呢,注意是javafx,不是swing等其他的ui

参考技术A 使用JTextArea,有方法setOpaque
参数:
isOpaque - 如果此组件应该是不透明的,则为 true本回答被提问者和网友采纳
参考技术B 我告诉你了,我有什么好处,你最佳答案都给别人了。算了,
setStyle("-fx-background-color:transparent ");

如何知道用户在 JavaFX TextArea 中选择了哪个文本字符串

【中文标题】如何知道用户在 JavaFX TextArea 中选择了哪个文本字符串【英文标题】:How to know which text string is selected by user in JavaFX TextArea 【发布时间】:2013-12-21 10:03:47 【问题描述】:

我需要允许用户突出显示文本(用鼠标选择一个范围),然后我想让他们能够通过下拉右键单击菜单将一些设置应用于该文本。

我知道后半部分。但是如何获取从 JavafX 中的文本区域中选择的文本字符串?

另外,我可以对不同的字符串应用不同的样式吗?

【问题讨论】:

我试过这个处理程序,但似乎什么也没做 --------------textArea.addEventHandler(MouseDragEvent.MOUSE_DRAG_RELEASED, new EventHandler() @Override public void handle(MouseDragEvent t) System.out.println("u selected this: "+textArea.getSelectedText()); //要更改生成方法的主体,请选择工具 | 模板。 );跨度> 【参考方案1】:

使用getSelectedText() 获取选定的文本。

第二个问题的答案是肯定的。

getSelectedText() 方法可以像我在这里所做的那样使用:

import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TextAreaDemo extends Application

    @Override
    public void start(Stage stage)
    
        final TextArea textArea = new TextArea("Text Sample");
        textArea.setPrefSize(200, 40);

        textArea.setOnContextMenuRequested(new EventHandler<Event>()
        
            @Override
            public void handle(Event arg0)
            
                System.out.println("selected text:"
                    + textArea.getSelectedText());
            
        );

        VBox vBox = new VBox();
        vBox.getChildren().addAll(textArea);

        stage.setScene(new Scene(vBox, 300, 250));
        stage.show();
    

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

启动此应用程序后,它会显示带有一些文本的TextArea (Text Sample)。我选择了文本的一部分并右键单击。它打印了选定的文本。这符合您的要求吗?

【讨论】:

天啊..我不知道为什么,我只看到了“getSelectedText()”评论。没有显示代码。以上工作!!!!你是我今天的英雄:) :) 很高兴这对您有所帮助。 我今天的最后一个问题(因为您似乎在线!:D)。是否可以将不同的字体样式应用于单个文本区域中的字符串?我读到这是不可能的,或者至少不是直截了当的..(这是我与 Javafx 的第二次战斗)。我正在考虑抓取所有角色并为每个角色分配一种风格......你有什么建议? :) 请将此放在一个单独的问题中。总之,我认为这应该是可行的。 好的!刚刚添加了一个问题。

以上是关于javafx如何设置文本框TextArea背景色为透明的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX TextArea如何使用自动换行符设置文本

如何在 setText 之后滚动 JavaFX TextArea

如何知道用户在 JavaFX TextArea 中选择了哪个文本字符串

如何使用 JavaFX 将选择框、复选框和文本字段实现为一个按钮 [关闭]

如何禁用 TextArea (JavaFX) 中的文本选择?

如何在 JavaFX 中延迟 10 秒在 TextArea 中附加文本?