zoukankan      html  css  js  c++  java
  • JavaFX2

    背景介绍

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

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

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

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

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


    文本可复制的Label方案

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

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

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

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

    图1 TextField本身的效果

    20150819223047-default-textfield

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

    20150819223935-copyable-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

  • 相关阅读:
    强化学习的基本迭代方法
    基于文本描述的事务聚类
    学习强化学习之前需要掌握的3种技能
    其它 华硕 ASAU S4100U 系统安装 win10安装 重装系统 Invalid Partition Table 解决
    数据分析 一些基本的知识
    Python 取样式的内容 合并多个文件的样式 自定义样式
    电商 Python 生成补单公司需要的评论格式3
    SpringBlade 本地图片上传 生成缩略图
    SQL Server 字符串截取
    SpringBlade 本地图片上传
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7040964.html
Copyright © 2011-2022 走看看