Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextField show'';当内容太长时_Java_Swing_Jtextfield - Fatal编程技术网

Java JTextField show'';当内容太长时

Java JTextField show'';当内容太长时,java,swing,jtextfield,Java,Swing,Jtextfield,我试图使JTextField在其内容比显示区域长时显示点。我希望有与JTable中相同的行为,当我调整列的大小时,其中的文本会发生变化-当它的开头显示为长,然后有三个点(要了解我的想法,请运行第一个示例并更改列的大小-我不允许发布图像,因为我是新来的;)) 有可能吗?我想到的唯一解决方案是使用一个类来扩展JTextField,该类将具有额外的字段oryginalText,并将这样做(没有测试它,它只是一个建议,JTextField的维度不会改变): import javax.swing.JTex

我试图使
JTextField
在其内容比显示区域长时显示点。我希望有与
JTable
中相同的行为,当我调整列的大小时,其中的文本会发生变化-当它的开头显示为长,然后有三个点(要了解我的想法,请运行第一个示例并更改列的大小-我不允许发布图像,因为我是新来的;))

有可能吗?我想到的唯一解决方案是使用一个类来扩展
JTextField
,该类将具有额外的字段
oryginalText
,并将这样做(没有测试它,它只是一个建议,
JTextField
的维度不会改变):

import javax.swing.JTextField;
公共类MyTextField扩展了JTextField{
私有字符串或超文本;
私有整数长度;
@凌驾
公共void setText(字符串文本){
oryginalText=文本;
if(oryginalText.length()>长度)
super.setText(oryginalText.substring(0,长度-2)+.”);
其他的
super.setText(oryginalText);
}
}

有什么想法吗?

关于扩展JTextField并存储原始(未修剪)值的想法:

将文本字段显示为禁用(或不可编辑)并带有修剪文本。当用户剪切文本字段时,使其启用/可编辑并显示整个原始文本


然后,当用户按enter键或文本字段的焦点退出时:禁用/不可编辑和修剪文本。

关于扩展JTextField并存储原始(未修剪)值的想法:

将文本字段显示为禁用(或不可编辑)并带有修剪文本。当用户剪切文本字段时,使其启用/可编辑并显示整个原始文本


然后,当用户按enter键或文本字段的焦点退出时:禁用/不可编辑和修剪文本。

实际上听起来不太友好。这实际上是文本字段的非标准行为。同意,但也请参见。您看到的行为是
JLabel
的行为。如果您的文本是不可编辑的,请考虑使用该代码而不是<代码> JTraceField>代码> @ Robin感谢您的澄清,不幸的是,这个字段必须是可编辑的,但至少现在我知道什么组件负责在这样的文本中显示文本。way@aioobe符合事实的这不是这个组件的典型行为,但由于布局限制,我有一些字段可以容纳更多的字符,然后再显示出来,所以我必须在用户离开字段后有一些方法来显示它-我想我会使用MyTextField的想法,或者类似的东西实际上听起来不太友好。这实际上是文本字段的非标准行为。同意,但也请参见。您看到的行为是
JLabel
的行为。如果您的文本是不可编辑的,请考虑使用该代码而不是<代码> JTraceField>代码> @ Robin感谢您的澄清,不幸的是,这个字段必须是可编辑的,但至少现在我知道什么组件负责在这样的文本中显示文本。way@aioobe符合事实的这不是这个组件的典型行为,但由于布局限制,我有一些字段可以容纳更多的字符,然后再显示,所以我必须有一些方法在用户离开字段后显示它-我想我会使用MyTextField或类似的想法