JavaFX2 - 文本可复制的Label
背景介绍
我的公司和我个人一直都使用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的高度是预设的。文本超出高度会出滚动栏,而仅仅有一行文本时,其高度也不会降低。
你想到好办法了吗?
------------------------------------
欢迎訪问我的独立博客:
JavaFX2 - 文本可复制的Label的更多相关文章
- 转:VIM选择文本块/复制/粘贴
VIM选择文本块/复制/粘贴 - lcj_cjfykx的专栏 - CSDN博客https://blog.csdn.net/lcj_cjfykx/article/details/9091569
- VIM选择文本块/复制/粘贴
在正常模式下(按ESC进入)按键v进入可视化模式,然后按键盘左右键或h,l键即可实现文本的选择.其它相关命令:v:按字符选择.经常使用的模式,所以亲自尝试一下它. V:按行选择.这在你想拷贝或者移动很 ...
- 富文本编辑器复制Wod字体问题
目前常用的富文本编辑器:百度版UEditor,wangEditor,ckeditor,kindeditor,TinyMCE.当Word复制文本粘贴到编辑器时,几乎都无法保证字体大小完全一致的问题. 想 ...
- 文本框复制代码,兼容大部分浏览器(ZeroClipboard插件、附件)
;;list-style-type:none;} a,img{;} body{font:12px/180% Arial, Helvetica, sans-serif ,"新宋体"; ...
- jquery非文本框复制
function selectText(x) { if (document.selection) { var range = document.body.createTextRange();//ie ...
- 富文本编辑器复制word
这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...
- 富文本编辑器复制粘贴word
tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...
- Android自定义的webView——可实现的网页文本的复制
package com.example.customlinearlayout.view; import android.app.ProgressDialog; import android.conte ...
- UIMenuController/UIPasteboard(1) 制作一个可以粘贴复制的Label
效果如下: 苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以我们要自定义可以复制粘贴的控件,首先需要打开UIResponder的两个方法: - ( ...
随机推荐
- leetcode 链表 Partition List
Partition List Total Accepted: 19761 Total Submissions: 73252My Submissions Given a linked list and ...
- js---15深拷贝浅拷贝 原型链
//&&得到的结果不是布尔类型,如果前面都是 true就执行最后一个,并返回最后一个表达式的值,前面有一个为false,后面不执行,返回前面表达式的值 var a = 3; var b ...
- Get Started with Git and Team Services
https://www.visualstudio.com/en-us/docs/git/gitquickstart Visual Studio查看日志 LocalHistory和Incoming是拆开 ...
- css3.0滚动条的优化
.ass_showFriends{width: 93%;height: 8.35rem;overflow-y: auto;} .ass_showFriends::-webkit-scrollbar{w ...
- Flask的快速入门详细笔记
Flask的框架结构对应关系及理解 1.简介 简单介绍下Flask是一个轻量级的web前端框架,不像django那样本身具备一套完整的页面体系,轻量级说明了完全可以自定义,从功能逻辑到业务处理,都可以 ...
- 执行异步UI更新
异步更新UI的几种方法①.使用Control.Invoke方式来更新数据 foreach (DataGridViewRow dgvr in this.dgv_s ...
- 【CS Round #39 (Div. 2 only) B】Circle Elimination
[Link]:https://csacademy.com/contest/round-39/task/circle-elimination/ [Description] [Solution] 把n个点 ...
- iOS QQ第三方登实现
我们常常会见到应用登陆的时候会有QQ,微信,微博等的第三方登陆 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHdqb2syMDA3/font/5 ...
- [ReasonML] Workshops code
/* list of strings */ let _ = ["example-1", "example-2", "example-3"]; ...
- 分享一些 WINDOWS 资源站点(备用)
分享一些 WINDOWS 资源站点(备用) Windows Embedded http://www.10down.net/windows-embedded.php Windows 7 SP1 Upd ...