本文介绍了检票口中的可增长文本区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望创建一个垂直增长的文本区域,在那里我仍然可以看到文本的第一行.
I'm looking to create a text area that grows vertically where I can still see the first line of the text.
目前我正在尝试使用它:
Currently I'm trying to use this:
public class GrowableTextArea extends TextArea {
/**
*
*/
private static final long serialVersionUID = 1L;
int initialRowSize = 1;
int fixedColSize = 40;
int currentRowSize = initialRowSize;
float temp = 1.0f;
String inputValue;
public GrowableTextArea(String id) {
super(id);
setModel(new PropertyModel(this, inputValue));
setOutputMarkupId(true);
add(new GrowableBehavior("onkeyup"));
}
/***
* Set the rows here. So that every time component is rendered,
*
* rows value is updated.
**/
@Override
public void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
tag.put("rows", currentRowSize);
tag.put("cols", fixedColSize);
}
/*** Getters and setters ***/
public int getCurrentRowSize() {
return currentRowSize;
}
public void setCurrentRowSize(int currentRowSize) {
this.currentRowSize = currentRowSize;
}
public String getInputValue() {
return inputValue;
}
public void setInputValue(String inputValue) {
this.inputValue = inputValue;
}
private class GrowableBehavior extends AjaxFormComponentUpdatingBehavior
{
/***
* Tell it to fire the onkeyup event every 1/2 sec.
**/
public GrowableBehavior(String event) {
super(event);
setThrottleDelay(Duration.milliseconds(500));
}
/***
* First the model is updated and then
*
* length is checked to see the
*
* whether rowcount should be incremented
**/
@Override
protected void onUpdate(AjaxRequestTarget target) {
Component comp = getComponent();
TextArea textarea = (TextArea) comp;
String value = (String) textarea.getConvertedInput();
if (value != null) {
int currentLength = value.length();
float f = (float) currentLength / fixedColSize;
if (f > temp) {
currentRowSize++;
temp = temp + 1;
target.add(comp);
}
}
}
}
public void setThrottleDelay(Duration milliseconds) {
// TODO Auto-generated method stub
}
}
我的输出只是一个普通的文本区域,类似于堆栈溢出文本区域.这里有什么问题?
My output is a just a normal text area that similar to the stack overflow text area. What is wrong here?
推荐答案
您可以像这样使用 jQuery 插件:http://www.jacklmoore.com/autosize/
You can use a jQuery plugin fir this like this: http://www.jacklmoore.com/autosize/
这篇关于检票口中的可增长文本区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!