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

  • 相关阅读:
    jQuery操作radio、checkbox、select 集合
    正则表达式
    ajax传递数组:属性traditional设置
    EF是否存在(Any/Count>0的用法)
    Layui上传图片(1.0版)
    A-01 最小二乘法
    09-01 Tensorflow1基本使用
    08-08 细分构建机器学习应用程序的流程-模型优化
    08-07 细分构建机器学习应用程序的流程-测试模型
    08-06 细分构建机器学习应用程序的流程-训练模型
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7040964.html
Copyright © 2011-2022 走看看