- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了让最终用户将搜索限制在主 TableView 的某些列中,我需要一个带有复选框的 TreeView 。我决定将此 TreeView 嵌入弹出窗口中,在单击自定义按钮时显示。
受问题启发,我创建了以下类(class): Java FX8 TreeView in a table cell
public class CustomTreeMenuButton extends MenuButton {
private PopupControl popup = new PopupControl();
private TreeView<? extends Object> tree;
private CustomTreeMenuButton me = this;
public void setTree(TreeView<? extends Object> tree) {
this.tree = tree;
}
public CustomTreeMenuButton() {
super();
this.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if (!popup.isShowing()) {
Bounds b = me.localToScreen(me.getBoundsInLocal());
double x = b.getMinX();
double y = b.getMaxY();
popup.setAutoHide(true);
// popup.setAutoFix(true);
popup.setAnchorX(x);
popup.setAnchorY(y);
popup.setSkin(new Skin<Skinnable>() {
@Override
public void dispose() {
}
@Override
public Node getNode() {
return tree;
}
@Override
public Skinnable getSkinnable() {
return null;
}
});
popup.show(me.getScene().getWindow());
}
}
});
}
}
我正在使用的树包含 CheckBoxTreeItem
对象,当弹出窗口工作时,只要焦点不在复选框上,所有复选框就会出现一些奇怪的模糊。 (见下面的 GIF)
首先,我认为这可能是抗锯齿问题,但 popup.getScene().getAntiAliasing().toString()
返回 DISABLED
然后,我看到非整数 anchor 可能会导致问题。然而,popup.setAutoFix(true)
什么也没做,也没有执行以下操作:
popup.setAnchorX(new Double(x).intValue());
popup.setAnchorY(new Double(y).intValue());
可能值得注意的是,我正在使用 FXML。
无论焦点如何,我怎样才能得到清晰的复选框?
最佳答案
我建议使用内置控件,CustomMenuItem ,而不是重新发明轮子:
A MenuItem that allows for arbitrary nodes to be embedded within it, by assigning a Node to the content property.
一个例子
// Create the tree
CheckBoxTreeItem<String> rootItem = new CheckBoxTreeItem<String>("All stuff");
rootItem.setExpanded(true);
final TreeView<String> tree = new TreeView<String>(rootItem);
tree.setEditable(true);
tree.setCellFactory(CheckBoxTreeCell.<String>forTreeView());
for (int i = 0; i < 8; i++) {
final CheckBoxTreeItem<String> checkBoxTreeItem =
new CheckBoxTreeItem<String>("Stuff" + (i+1));
rootItem.getChildren().add(checkBoxTreeItem);
}
tree.setRoot(rootItem);
tree.setShowRoot(true);
// Create a custom menu item
CustomMenuItem customMenuItem = new CustomMenuItem(tree);
customMenuItem.setHideOnClick(false);
// Create the menu button
MenuButton mb = new MenuButton("Stuffs");
mb.getItems().add(customMenuItem);
和输出
注意:设置 hideOnClickProperty 很重要为 true
,以避免在用户单击树时关闭,这甚至可以在构造函数中完成,因此您可以将初始化缩短为:
CustomMenuItem customMenuItem = new CustomMenuItem(tree, false);
如果你想去掉悬停发光,你可以添加下面的CSS类:
.menu-item {
-fx-padding: 0;
}
关于下拉按钮弹出窗口中的JavaFX CheckBoxTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205744/
为了让最终用户将搜索限制在主 TableView 的某些列中,我需要一个带有复选框的 TreeView 。我决定将此 TreeView 嵌入弹出窗口中,在单击自定义按钮时显示。 受问题启发,我创建了以
我正在使用 CheckBoxTree 组件来获得一种带有复选框的特殊 JTree。但是,我希望能够在高级节点上没有复选框,因为永远不应该检查它们,它们只是“分支名称”。这是树的一个简单示例: 元数据
我使用jquery checkboxtree我想以折叠模式启动树。 我用这个: $(document).ready(function(){ $('#ch_group_menu').checkb
我在内部使用react-checkbox-tree时遇到问题。在我的文本字段中输入值,然后单击其中一个复选框后,我的文本字段将重置为第一个状态。 ( this.on
这可能是一个简单的问题,我不太习惯Java编程。但我需要创建一个带有 CheckboxTree 的对话框(带有复选框的 JTree 变体,请参阅 http://www.javaworld.com/ja
我正在使用 CheckBoxTree 类,它是 JIDE 公共(public)层包 (http://jidesoft.com/products/oss.htm) 的一部分。我想要做的是保存并加载 Ch
我是一名优秀的程序员,十分优秀!