首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX -多个按钮拖放文本的TextArea

JavaFX是一种用于创建富客户端应用程序的Java库。它提供了丰富的图形化用户界面(GUI)组件和功能,可以用于构建跨平台的桌面应用程序。JavaFX支持多种操作系统,包括Windows、Mac和Linux。

多个按钮拖放文本的TextArea是指在JavaFX应用程序中,有多个按钮和一个文本区域(TextArea),用户可以通过拖放按钮上的文本到文本区域中来实现文本的输入。

JavaFX中可以使用Drag-and-Drop(拖放)功能来实现这个需求。具体步骤如下:

  1. 创建多个按钮和一个文本区域(TextArea)的界面布局。
  2. 为每个按钮设置拖放源(Drag Source)和拖放目标(Drop Target)。
  3. 在拖放源上设置拖放开始事件处理程序,将按钮上的文本添加到拖放数据中。
  4. 在拖放目标上设置拖放完成事件处理程序,将拖放数据中的文本添加到文本区域中。

以下是一个示例代码:

代码语言:java
复制
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.input.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class DragAndDropExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button button1 = new Button("Button 1");
        Button button2 = new Button("Button 2");
        TextArea textArea = new TextArea();

        button1.setOnDragDetected(new EventHandler<MouseEvent>() {
            public void handle(MouseEvent event) {
                Dragboard db = button1.startDragAndDrop(TransferMode.COPY);
                ClipboardContent content = new ClipboardContent();
                content.putString(button1.getText());
                db.setContent(content);
                event.consume();
            }
        });

        textArea.setOnDragOver(new EventHandler<DragEvent>() {
            public void handle(DragEvent event) {
                if (event.getGestureSource() != textArea && event.getDragboard().hasString()) {
                    event.acceptTransferModes(TransferMode.COPY);
                }
                event.consume();
            }
        });

        textArea.setOnDragDropped(new EventHandler<DragEvent>() {
            public void handle(DragEvent event) {
                Dragboard db = event.getDragboard();
                boolean success = false;
                if (db.hasString()) {
                    textArea.appendText(db.getString() + "\n");
                    success = true;
                }
                event.setDropCompleted(success);
                event.consume();
            }
        });

        VBox vbox = new VBox(button1, button2, textArea);
        Scene scene = new Scene(vbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

在这个示例中,我们创建了两个按钮(button1和button2)和一个文本区域(textArea),并为按钮设置了拖放源和文本区域设置了拖放目标。当用户拖动按钮上的文本到文本区域中时,文本会被添加到文本区域中。

腾讯云提供了云计算相关的产品和服务,例如云服务器、云数据库、云存储等。您可以根据具体需求选择适合的产品进行开发和部署。具体的产品介绍和文档可以在腾讯云官网上找到。

请注意,本答案中没有提及其他云计算品牌商,如有需要可以自行搜索相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

正常输出是7、8、9、10随机出现,但是却出现了多个10及多个11情况,输出结果明显不正确。...经过测试我们发现,对于TextArea多线程取值过程,不用加Platform.runLater(() -> {});,也可以保证线程安全。...2 javafx控件修改值过程测试 接下来再添加一行修改javafx控件文本代码:Quanjv.textarea.setText("test");,发现在100个线程操作下程序立马报错。...后来我终于想明白了,一个TabPane是由多个标签组成,当你双击关闭其中一两个标签时,tabPane所有索引id都变了,而另一个线程对于Tab标签for循环操作还在进行当中,而且还是按照原始索引去遍历...以下这个界面,按钮控件特别多,每个按钮功能类似,于是我用一个Map集合放置每一个按钮标题和按钮事件中用到关键值,然后用一个for循环,遍历Map集合添加Button按钮组件,很快搞定这个界面,比Scenebuilder

35331
  • Flutter文本、图片和按钮使用

    文本、图片和按钮则是这些不同UI框架中构建视图都要用到最基本控件。...1 文本控件 文本是视图系统中常见控件,用来显示一段特定样式字符串,就比如Android里TextView、iOS中UILabel。而在Flutter中,文本展示是通过Text控件实现。...Text支持两种类型文本展示: 默认展示单一样式文本Text 支持多种混合样式文本Text.rich 1.1 使用单一样式文本Text 单一样式文本Text初始化,要传入需展示字符串。...这些参数分为: 控制整体文本布局参数,如文本对齐方式textAlign、文本排版方向textDirection,文本显示最大行数maxLines、文本截断规则overflow等都是构造函数中参数 控制文本展示样式参数...展示效果: 4 总结 UI控件是构建一个视图基本元素,而文本、图片和按钮则是其中最经典控件。

    56620

    JavaFX 11发行说明

    添加API以自定义Spinner控件步骤重复计时 在JavaFX 11中修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。...控制 JDK-8157690 [TabPane]排序选项卡使选项卡选择菜单为空 控制 JDK-8165459 HTMLEditor:意外禁用剪贴板工具栏按钮 控制 JDK-8185854 具有自定义外观...上显示RTL语言文本时,控件显着减慢 图像 JDK-8195801 用MarlinFX中sun.misc.Unsafe替换jdk.internal.misc.Unsafe 图像 JDK-8195802...8207328 javafx.css.StylesheetAPI文档不准确/错误 图像 JDK-8209191 [macOS]扭曲复杂文本渲染 图像 JDK-8088722 GSTPlatform无法播放具有多个音轨...文件 web JDK-8208114 在Webview中打破了文本内容和URL链接功能拖放 web JDK-8208622 使用html表单控件调用print API时出现[WebView] IllegalStateException

    6.6K60

    JavaFX入门(四):JavaFX布局(一)

    说道GUI编程一定要谈到布局,JavaFX内置了大量布局控件提供给我们使用。其实,JavaFX布局控件和界面元素控件都是继承自javafx.scene.layout.Region类。...布局控件我们在界面上一般是看不到,它一个容器用于放置其它可视界面元素控件。(JavaFX在线API文档:JavaFX8 API Online) JavaFX布局控件类图如下: ?...我们在ScrollPane中放置一个TextArea文本域控件,并且设置TextArea大小大于ScrollPane大小,这样就可以显示出水平和垂直滚动条了。如下图: ?.../javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"> <TextArea prefHeight="600.0"...在我们用SceneBuilder设计界面的时候,自动生成FXML文件中实体元素和属性是和JavaFX类和属性是对应,我们可以通过FXML了解对应类一些属性和方法。

    11.7K42

    Python按要求提取多个txt文本数据

    本文介绍基于Python语言,遍历文件夹并从中找到文件名称符合我们需求多个.txt格式文本文件,并从上述每一个文本文件中,找到我们需要指定数据,最后得到所有文本文件中我们需要数据合集方法。...现有一个文件夹,其中含有大量.txt格式文本文件,如下图所示;同时,这些文本文件中,文件名中含有Point字段,都是我们需要文件,我们接下来操作都是对这些我们需要文件而言;而不含有Point...随后,在每一个我们需要文本文件(也就是文件名中含有Point字段文件)中,都具有着如下图所示数据格式。...此外,前面也提到,文件名中含有Point字段文本文件是有多个;因此希望将所有文本文件中,符合要求数据行都保存在一个变量,且保存时候也将文件名称保存下来,从而知道保存每一行数据,具体是来自于哪一个文件...由于我这里需求是,只要保证文本文件中数据被提取到一个变量中就够了,所以没有将结果保存为一个独立文件。

    23310

    Python按要求提取多个txt文本数据

    本文介绍基于Python语言,遍历文件夹并从中找到文件名称符合我们需求多个.txt格式文本文件,并从上述每一个文本文件中,找到我们需要指定数据,最后得到所有文本文件中我们需要数据合集方法。...现有一个文件夹,其中含有大量.txt格式文本文件,如下图所示;同时,这些文本文件中,文件名中含有Point字段,都是我们需要文件,我们接下来操作都是对这些我们需要文件而言;而不含有Point...随后,在每一个我们需要文本文件(也就是文件名中含有Point字段文件)中,都具有着如下图所示数据格式。...此外,前面也提到,文件名中含有Point字段文本文件是有多个;因此希望将所有文本文件中,符合要求数据行都保存在一个变量,且保存时候也将文件名称保存下来,从而知道保存每一行数据,具体是来自于哪一个文件...由于我这里需求是,只要保证文本文件中数据被提取到一个变量中就够了,所以没有将结果保存为一个独立文件。

    31310

    「译」按钮文本设计五大原则

    使用错误按钮文本会导致用户感到困惑,并进而拖慢工作效率、徒增工作量。如果你想让用户轻松操作 app,那么设置正确按钮文本是必不可少。...用户依然可以凭借带有行为动词按钮文本采取操作,但是对于只包含“是/否”按钮文本就无能为力了。显然,带有行为动词按钮文本可以提高操作效率。...原则 3:使用功能化表达方式 模糊且通用按钮文本会让用户感到困惑。由于文本是通用,这使得用户不清楚按钮具体作用。要想让用户明晰操作结果是什么,必须改用功能化表达方式。...这种表达方式可以让你去除句子中不必要成分,从而让按钮文本更加简洁明了。你只需要在文本中使用带有副词或者直接宾语动词即可。 用户更加信任并理解命令式按钮文本。...操作指引同样很重要 操作指引和按钮文本同等重要,不过,如果你按钮文本设置不合理,那么操作指引也没什么作用了。 上述五大原则可以确保你按钮正常发挥作用。

    71420

    界面劫持之拖放劫持

    ,password等敏感信息,甚至能将浏览器中页面内容拖进文本编辑器,查看源代码。...但是,这些 API 接口在设计时没有考虑很多安全性问题,导致通过拖拽就可以实现跨域操作。利用拖拽技术,攻击者可以突破很多已有的安全防御措施。利用拖拽技术,攻击者可以轻易将文本注入到目标网页。...setData操作完成向系统剪贴板中存储需要传递数据,传递数据分为两种类型:文本数据和URL数据。在HTML5扩展中,其允许指定任意MIME类型。...2、在终点位置设置一个透明textarea,用户拖动图片过程其实是选中图片上层载入另一网页资源,并将网页资源移动到textarea中使用inner.html将源码打印3、在起点和终点处都加载要拖动图片...图片简单界面,用户需要将图片拖拽进矩形框中,但在矩阵框和图片上方各隐藏一个alpha为0iframe和textarea,在testarea处隐藏着一个跟下方图片一摸一样不可见图片资源。

    22520

    界面劫持之拖放劫持分析

    ,password等敏感信息,甚至能将浏览器中页面内容拖进文本编辑器,查看源代码。...但是,这些 API 接口在设计时没有考虑很多安全性问题,导致通过拖拽就可以实现跨域操作。利用拖拽技术,攻击者可以突破很多已有的安全防御措施。 利用拖拽技术,攻击者可以轻易将文本注入到目标网页。...setData操作完成向系统剪贴板中存储需要传递数据,传递数据分为两种类型:文本数据和URL数据。在HTML5扩展中,其允许指定任意MIME类型。...2、在终点位置设置一个透明textarea,用户拖动图片过程其实是选中图片上层载入另一网页资源,并将网页资源移动到textarea中使用inner.html将源码打印 3、在起点和终点处都加载要拖动图片...简单界面,用户需要将图片拖拽进矩形框中,但在矩阵框和图片上方各隐藏一个alpha为0iframe和textarea,在testarea处隐藏着一个跟下方图片一摸一样不可见图片资源。

    28930

    你还在用B端大模型?OUT 了!!!用混元打造专属智能化桌面应用

    强大图形支持:可以轻松实现复杂动画和图形效果。 组件丰富:提供丰富 UI 组件,如按钮、表格、列表等,支持高自定义化界面开发。...其技术原理包括深度学习、自然语言处理、注意力机制、知识图谱、大规模预训练、微调与优化等多个方面。 多轮对话 具备上下文理解和长文记忆能力,流畅完成各专业领域多轮问答。...架构设计 为了实现一个智能化桌面应用,我们可以采用以下架构: 前端:JavaFX JavaFX 提供用户界面,允许用户输入文本消息,并展示与混元大模型对话内容。...点击 + 按钮,选择 Java,然后选择下载 JavaFX SDK 目录。 配置模块依赖 进入 File -> Project Structure -> Modules。...选择你模块,然后在 Dependencies 标签页中点击 + 按钮,选择 Library,添加刚刚添加 JavaFX 库。

    38931

    Zetcode GUI 教程

    PyQt4 中的菜单和工具栏 PyQt4 中布局管理 PyQt4 中事件和信号 PyQt4 中对话框 PyQt4 小部件 PyQt4 小部件 II PyQt4 中拖放 PyQt4 中绘图 PyQt4...中事件和信号 PyQt5 中对话框 PyQt5 小部件 PyQt5 小部件 II PyQt5 拖放 PyQt5 中绘图 PyQt5 中自定义小部件 PyQt5 中俄罗斯方块 Qt4 教程...中布局管理 PySide 中事件和信号 PySide 中对话框 PySide 小部件 PySide 小部件 II 在 PySide 中拖放 在 PySide 中绘图 PySide 中自定义小部件...对话框 Java Swing 模型架构 Swing 中拖放 Swing 中绘图 Java Swing 中可调整大小组件 Java Swing 中益智游戏 俄罗斯方块 JavaFX 教程 JavaFX...简介 JavaFX 首个程序 JavaFX 布局窗格 基本 JavaFX 控件 基本 JavaFX 控件 II JavaFX 事件 JavaFX 效果 JavaFX 动画 JavaFX 画布 JavaFX

    2.5K40

    JavaScript 事件基础补充

    中把事件处理函数作为属性执行JS函数 //执行JS函数 PS:函数不得放到window.onload...输入框,选择框和文本区域 当改变一个元素值且失去焦点时 onclick 链接、按钮、表单对象、图像映射区域 当用户单击对象时 ondblclick 链接、按钮、表单对象 当用户双击对象时 ondragdrop...窗口 当用户将一个对象拖放到浏览器窗口时 onError 脚本 当脚本中发生语法错误时 onfocus 窗口、框架、所有表单对象 当单击鼠标或者将鼠标移动聚焦到窗口或框架时 onkeydown 文档、...window.onunload = function () { alert('Lee'); }; select:当用户选择文本框(input或textarea)中一个或多个字符触发。...input.onselect = function () { alert('Lee'); }; change:当文本框(input或textarea)内容改变且失去焦点后触发。

    3.1K50

    使用 white-space 来实现保留文本textarea换行格式和 空格格式

    背景 昨天产品需求评审,产品经理收到用户反馈,在系统中有一些文本域,用户希望在在文本中填写文本内容和格式都能够被保留下来,目前只能保存文本内容,对于文本换行和空格,在显示时候都没有正确显示。...接到这个需求,我搜索了一下,网上大多数是获取文本内容后,将其中换行符,空格替换成html标签,如, 使用JavaScript处理,然后将这些数据转化后,保存后端,在显示时,使用innerHTML...最终我发现设置元素样式white-space可以将文本换行和空格正确显示出来。...nowrap 和 normal 一样,连续空白符会被合并。但文本换行无效。 pre 连续空白符会被保留。在遇到换行符或者 元素时才会换行。 pre-wrap 连续空白符会被保留。...演示demo 此外我还专门写了一个简单demo来演示使用white-space来正确显示文本域中文本格式。

    2.4K30
    领券