背景介绍

我的公司和我个人一直都使用JavaFX2来编写client应用程序,同一时候也作为Applet在浏览器中执行。

我们的客户以前拿我们的产品和网页对照,然后向我们提过两个需求:

(1) 希望界面上全部的文字都能够被复制。尤其是界面中的一些有參考意义的文字(而这些文字不可被编辑也不须要被编辑)

(2) 希望能够打印界面的内容,乃至滚动栏中没有显示出来的内容

遗憾的是,以上两点我都没能非常好的解决。以后在这双方面我还会继续学习和研究。

文本可复制的Label方案

今天这篇文章主要说的是怎样让Label中的文本能够被复制。实际上,Label的文本是不能被复制的。

(1) 给Label加右键菜单。点击Copy菜单实现对文本的总体复制,但这不是常规意义上的复制

(2) 还有一个替代的解决方式就是使用TextField,对其外观进行改进。使得看起来像Label

针对第(2)种方案。先看效果:

图1 TextField本身的效果

图2 改进后类似Label且可复制的效果

代码很easy,例如以下:

代码片段1 初始化TextField

TextField field = new TextField("This is a copyable label which is implemented by a TextField.");
field.setEditable(false);
field.getStyleClass().add("copyablelabel");

代码片段2 为TextField设置CSS

.copyablelabel{
-fx-background-color: transparent;
}

重点就在-fx-background-color: transparent;让TextField的边框和背景都消失了。

留点作业

最后,这里还有个缺陷,TextField不能换行显示多行文本,而Label是能够换行显示多行文本的。

在这里,你可能已经想到了TextArea。以我眼下的研究,我要遗憾的说。TextArea不行,TextArea的高度不能随文本的多少而自适应高度。

TextArea的高度是预设的。文本超出高度会出滚动栏,而仅仅有一行文本时,其高度也不会降低。

你想到好办法了吗?

------------------------------------

欢迎訪问我的独立博客:

www.alanzeng.cn

JavaFX2 - 文本可复制的Label的更多相关文章

  1. 转:VIM选择文本块/复制/粘贴

    VIM选择文本块/复制/粘贴 - lcj_cjfykx的专栏 - CSDN博客https://blog.csdn.net/lcj_cjfykx/article/details/9091569

  2. VIM选择文本块/复制/粘贴

    在正常模式下(按ESC进入)按键v进入可视化模式,然后按键盘左右键或h,l键即可实现文本的选择.其它相关命令:v:按字符选择.经常使用的模式,所以亲自尝试一下它. V:按行选择.这在你想拷贝或者移动很 ...

  3. 富文本编辑器复制Wod字体问题

    目前常用的富文本编辑器:百度版UEditor,wangEditor,ckeditor,kindeditor,TinyMCE.当Word复制文本粘贴到编辑器时,几乎都无法保证字体大小完全一致的问题. 想 ...

  4. 文本框复制代码,兼容大部分浏览器(ZeroClipboard插件、附件)

    ;;list-style-type:none;} a,img{;} body{font:12px/180% Arial, Helvetica, sans-serif ,"新宋体"; ...

  5. jquery非文本框复制

    function selectText(x) { if (document.selection) { var range = document.body.createTextRange();//ie ...

  6. 富文本编辑器复制word

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...

  7. 富文本编辑器复制粘贴word

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  8. Android自定义的webView——可实现的网页文本的复制

    package com.example.customlinearlayout.view; import android.app.ProgressDialog; import android.conte ...

  9. UIMenuController/UIPasteboard(1) 制作一个可以粘贴复制的Label

    效果如下:   苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以我们要自定义可以复制粘贴的控件,首先需要打开UIResponder的两个方法: - ( ...

随机推荐

  1. scaleType-模拟按钮加文字整天点击效果

    经常碰到这种情况,就是一个按钮下面有文字,我们点击按钮的时候,按钮跟文字的背景都是同时变化的.我们看下下面的效果 点击以后如下 如果想要实现这个方法,网上有很多的方法,主要就是自定义控件,或者是使用t ...

  2. 关于li的排列,我的面试题

    来到北京的第二周,收到了单位的面试,一面的时候面试官问了微信钱包里的那个快速入口的排列,我当时在面试官的引导下答的还可以,但是在实际中有很多的方法和各自不同的问题,我来总结下. 1.flex布局,其实 ...

  3. 图片压缩优化kraken

    https://kraken.io/web-interface 测试过,可以节省10%左右的大小,图片清晰度不受影响.

  4. hdu 1003 Max Sum 最大字段和 dp

    今天看了一上午dp.看不太懂啊.dp确实不简单.今天開始学习dp,搜了杭电的dp46道,慢慢来吧.白书上的写的 又不太具体,先写几道题目再说. .. 题目连接:id=516&page=1&qu ...

  5. D3.js加载csv和json数据

    1.加载数据的基本命令 D3提供了方法可以对不同的数据类型进行加载,比如d3.text(), d3.xml(), d3.json(), d3.csv(), 和d3.html(). <!DOCTY ...

  6. jquery constructor

    function F(){ this.a = "aaa"; alert(111); } F.prototype = { constructor:F, } var f = new F ...

  7. 1.lombok系列1:初识lombok

    转自:https://www.imooc.com/article/18156 初识lombok 官网:https://projectlombok.org/ 什么是lombok 连官网都懒得废话,只给出 ...

  8. linux监测tomcat服务

    原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928 项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写 ...

  9. 洛谷 P4779【模板】单源最短路径(标准版)

    洛谷 P4779[模板]单源最短路径(标准版) 题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 10 ...

  10. 【2017 Multi-University Training Contest - Team 7】Hard challenge

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6127 [Description] 平面上有n个点,每个点有一个价值,每两个点之间都有一条线段,定义 ...