在我的公司,我们的任务是实现一个可自动扩展的文本字段。由于默认情况下不提供此功能,我们必须从头开始开发它。web上有许多可能性,如何实现它,但没有人为as工作,所以我们决定将代码放在so上,以便其他开发人员也可以使用它。由于无法展开文本字段,因此解决方案基于文本区域:
public class TextFieldExpandable extends TextArea {
private final double DEFAULT_HEIGHT = 17.0;
public TextFieldExpandable() {
setMinHeight(DEFAULT_HEIGHT);
setPrefHeight(DEFAULT_HEIGHT);
setMaxHeight(DEFAULT_HEIGHT);
disableEnter();
}
@Override
protected void layoutChildren() {
super.layoutChildren();
setWrapText(true);
setPadding(new Insets(0, 0, 0, 0));
ScrollPane scrollPane = (ScrollPane)lookup(".scroll-pane");
scrollPane.setHbarPolicy(ScrollBarPolicy.NEVER);
scrollPane.setVbarPolicy(ScrollBarPolicy.NEVER);
scrollPane.setPadding(new Insets(0, 0, 0, 0));
StackPane viewport = (StackPane) scrollPane.lookup(".viewport");
viewport.setPadding(new Insets(0, 0, 0, 0));
Region content = (Region) viewport.lookup(".content");
content.setPadding(new Insets(-1, 1, 0, 1));
Text text = (Text) content.lookup(".text");
text.textProperty().addListener((property) -> {
double textHeight = text.getBoundsInLocal().getHeight();
if (textHeight < DEFAULT_HEIGHT) {
textHeight = DEFAULT_HEIGHT;
}
textHeight = textHeight + 1;
setMinHeight(textHeight);
setPrefHeight(textHeight);
setMaxHeight(textHeight);
});
}
private void disableEnter() {
setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.ENTER) {
event.consume();
}
}
});
}
}
我希望它能帮助你:)
您可以在文本字段的侦听器中设置PrefWidth。
//添加列表器
'textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
textField.setPrefWidth(textField.getText().length());
}
});'
这对我来说很好
field.setMinWidth(40);
field.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue,
String newValue) {
int len = newValue.length();
field.setPrefWidth(len*10);
if(newValue.isEmpty() || oldValue.isEmpty()){
field.setPrefWidth(40);
}
});
本文向大家介绍django2.0扩展用户字段示例,包括了django2.0扩展用户字段示例的使用技巧和注意事项,需要的朋友参考一下 创建新项目,及应用 自定义 User 类 文件myapp/models.py 文件 myproj/settings.py 文件 myproj/admin.py 更新数据库 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢
我正在从事一个JavaFX 2.2项目,在使用TextField控件时遇到问题。我想限制用户可以在每个文本字段中输入的字符数。但是,我找不到属性或类似maxlength的东西。Swing中也存在同样的问题,通过这种方式解决了。JavaFX 2.2如何解决这个问题?
我目前正在尝试构建一个行为类似于命令shell的应用程序。我想显示我给它的路径(或' 我这样做是为了在用户提交文本时文本字段会被清空。提交后,它将字段的文本设置为我的路径,以达到类似的效果,但用户仍然可以在输入文本时删除该路径。 如何使我的路径文本显示在字段中,但用户无法删除它? 我已经尝试过这个,但它只在提交后更新插入符号位置:
我需要一些帮助。我有一个s的。 我想检查值是否发生了变化。如果是,我想知道它是哪个文本字段。我知道我可以使用侦听器来执行此操作,但这只适用于单个侦听器。 我希望它在数组上工作并确定哪个文本字段已更改。 提前感谢!
我的代码中有JavaFX文本字段,希望在文本字段上为不同的事件添加一个操作。 今天,我只在文本字段中写入一些文本后按enter键时得到一个操作。如何添加处理tab press的操作?还有,当文本字段用鼠标点击失去焦点时,该如何反应? 当我读留档应该是可能的:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextFi
我想确保用户在JavaFX TextField(0.0.0.0255.255.255.255)中输入有效的IPv4地址,但我似乎找不到任何有效的解决方案。 我尝试了该代码: 但是我连一个数字都打不出来...它似乎只用一个输入就可以工作