有人可以从ControlFX写一个简短的JavaFX Popover示例吗?我无法让它发挥作用.任何帮助是极大的赞赏!
我想构建一个自定义TextArea(或Text对象...).以下是我在当前可用节点中发现的限制:
TextArea:提供应用字体样式,选择和"getSelected"文本的功能.但它不允许对子字符串应用不同的样式.样式应用于整个TextArea.
HTMLEditor:提供应用不同样式的方法,但不提供获取用户所选字符串的方法.
TextFlow:允许为字符串编写不同的样式.但它就像一个标签.不互动.
我需要一些文本区域,用户可以在其中键入,选择,我的代码将知道他们选择了什么,以便为他们提供将字体样式应用于所选字符串的选项.所以我想我需要一个自定义对象.
你同意吗?我该怎么做?
我需要允许用户突出显示文本(用鼠标选择一个范围),然后我想让他们能够将一些设置应用于该文本形式的下拉右键菜单.
我知道后一部分.但是如何从JavafX中的文本区域中选择哪个文本字符串?
另外,我可以将不同的样式应用于不同的字符串吗?
有没有办法为文本的子字符串设置样式TextArea
?setStyle()
方法仅适用于TextArea
该类.
在JavaFX中,当我向ScrollPane添加一个内置Label的AnchorPane时,整个AnchorPane有点模糊,好像它有一个Photoshop羽毛效果.我正在使用Java8最新版本.Java7不是这种情况.你以前遇到过这个问题吗?
有没有办法继续监听属性更改几秒钟,然后触发事件(调用方法)?
例如,当用户在文本字段中输入数据时:
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
//before calling a method to do something.. wait for a few seconds ...
}
});
Run Code Online (Sandbox Code Playgroud)
一个场景是根据字符串值触发一个动作。例如,点击“M”进行移动,或点击“MA”进行掩码。在采取行动之前,我想“继续聆听”2 秒钟。
我正在尝试设置保存文件的快捷方式。
public static final KeyCombination saveShortcut = new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_ANY);
Run Code Online (Sandbox Code Playgroud)
我通过以下方式触发操作:
sceneRoot.addEventHandler(KeyEvent.KEY_RELEASED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (saveShortcut.match(event)) {
saveProject.fire();
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是,仅按一下S键即可触发该事件。关于为什么这样的任何想法?
我使用TextFlow对象作为CheckBoxTextItem的图形节点(来自controlsFX).如果TextFlow对象的长度超过树视图的宽度,则会被包装.我怎么能停止包装?或设置类似于省略号的字符串 - 就像你可以用标签做的那样?
文本流对象由Text对象组成.
我正在尝试配置某些操作以响应鼠标点击次数.在我看来,单击和三击被检测并应用.但双击并不真正起作用.我尝试过这样的事情:
if (doubleClick)
else if (tripleClick)
else if (singleClick).
Run Code Online (Sandbox Code Playgroud)
检查的顺序也没有帮助,双击的操作永远不会被触发,因为单击的操作首先被触发.关于如何做到这一点的任何想法?
如何在菜单项组之间插入分隔线。例如:
第 1 组:保存、另存为
第 2 组打开导入
我的技巧是在中间添加一个禁用的菜单项,字符串值为“---------”。所以我现在的菜单是这样的
“节省”
“另存为”
“——”
“打开”
“进口”
有没有更合适、更优雅的方法来做到这一点?
我需要能够在树视图(其中有多个选择)中获取所有选定项目的更新列表。
此示例:javafx2 中的树项选择事件
显示如何一次响应/识别一个选定的项目。有没有办法一次获得所有选定的项目?类似于下面假设的非工作代码:
ArrayList<TreeItem> selectedTreeItems = new ArrayList<>();
myTreeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
selectedTreeItems.clear();//reset the list. correct?
//get a new list of children of the root
ObservableList objects = myTreeView.getRoot().getChildren();
//loop to get the selected items.
for (int i = 0; i < objects.size(); i++) {
TreeItem object = (TreeItem) objects.get(i);
if (thisObjectIsSelected(object)) {
selectedTreeItems.add(object);
}
}
}
});
privatevoid thisObjectIsSelected(TreeItem item){
//what do I do here?
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何实现我想要的。任何帮助是极大的赞赏!
javafx ×8
java-8 ×4
javafx-8 ×4
textarea ×2
blurry ×1
controlsfx ×1
fonts ×1
getselection ×1
highlighting ×1
java ×1
menu ×1
popover ×1
selection ×1
string ×1
text-editor ×1
textflow ×1
treeview ×1
word-wrap ×1