有沒有辦法更改節點顏色並將其更改爲斜體等?更改Wicket樹節點的顏色,字體等
回答
我認爲this thread會幫助你,儘管那個提問者似乎是在尋找比你更多的東西。從埃德溫的答覆:
如果忽略
populateTreeItem()
方法,你可以添加一個AbstractBehaviour
到該項目,覆蓋onComponentTag
方法。從那裏,你可以做tag.put("class", "yourValue")
...
你需要一個
AbstractBehaviour
添加到每個項目。該組件呈現之前onComponentTag()
方法將被運行,所以你可以檢查你的國家的userObject
,並添加/刪除使用tag.put()
方法:)而且類,你可能會考慮樹的
onNodeLinkClicked()
方法,如果你想要在點擊某個項目時執行操作。該onNodeLinkClicked()
,您可以訪問到AjaxRequestTarget
,所以你也可以執行任意JavaScript代碼,就像這樣:protected void onNodeLinkClicked(AjaxRequestTarget target, TreeNode node) { MyObject myObject = (MyObject) ((DefaultMutableTreeNode) node).getUserObject(); if (myObject.getMyState()) target.appendJavascript("targetTheComponentWithAJavascriptMethod(" + getId() + ");"); }
要麼,你可以改變
userObject
的狀態在onNodeLinkClicked
方法,並將其添加到AjaxRequestTarget
。然後,您AbstractBehaviour
會爲你:)
嗨,感謝您的回覆。我有過這個問題。我之前做過小小的JavaScript,所以我不確定要添加什麼。 – Matthew 2011-04-06 16:17:05
@Matthew,好吧,如果你不想動態改變,你根本不用擔心JavaScript。你可以設置一個枯燥的舊CSS類並完成。但是,從你的問題來看,你實際上試圖做的事情還不清楚。請修改它以使用標籤下的鏈接添加更多詳細信息。 – Pops 2011-04-06 16:22:55
在一個檢票樹中,我試圖在樹的頂部(硬編碼不動)與樹的其餘部分建立不同的顏色。所以頂層節點例如是紅色和斜體。 – Matthew 2011-04-07 07:56:38
你想擴展TreeTable
,然後覆蓋getCss()
改變字體和文字或背景顏色照顧可視化對象的新狀態。如果要更改要覆蓋的實際節點圖標的顏色getNodeIcon()
併爲您自己的PNG文件添加資源。
public abstract class MyTreeTable extends TreeTable {
private static ResourceReference CSS = new CompressedResourceReference(
MyTreeTable.class, "TreeTable.css");
private static ResourceReference documentIcon = new CompressedResourceReference(
MyTreeTable.class, "Icon_Document.png");
private static ResourceReference folderIcon = new CompressedResourceReference(
MyTreeTable.class, "Icon_Folder.png");
public MyTreeTable(String id, IColumn[] columns) {
super(id, columns);
}
@Override
protected ResourceReference getCSS() {
return CSS;
}
@Override
protected ResourceReference getNodeIcon(TreeNode node) {
if (node.isLeaf() == true) {
return documentIcon;
} else {
return folderIcon;
}
}
}
這個特定組件的CSS是非常挑剔的,因爲他們使用一個單一的圖像和圖像偏移,用於連接樹中的所有行,所以我建議複製他們的整個CSS文件(你可以從源頭上得到它文件),然後調整它。或者,如果您不想進行大量更改,則可能根本不想覆蓋getCSS()
,而是在構造函數中添加CSS資源。
真正真正超級跛腳的部分是,TreeTable
在每張桌子的頂部插入一個隱形div,所以:first-child
僞類不能用於選擇您的物品,或者至少,我似乎無法使其工作。所以你仍然需要重寫populateTreeItem()
。喜歡的東西:
boolean first = true;
@Override
protected void populateTreeItem(WebMarkupContainer container, int level) {
super.populateItem(container, level);
if(first) {
container.add(new SimpleAttributeModifer("class", "first"));
first = false;
}
}
,然後在你的CSS,
.first {font-color: red; font-style: italic;}
隨着LinkTree
(在檢票6.21棄用甚至更早),你可以重寫newNodeComponent
方法從頭開始構建組件:
@Override
protected Component newNodeComponent(String id, IModel<Object> model)
{
Object node = model.getObject();
if (node instanceof FolderNode)
{
FolderNode folderNode = (FolderNode)node;
return new Label(id, folderNode.getLabel());
}
else if (node instanceof FileNode)
{
...
}
else if ...
else
{
return null;
}
}
注意:原始實現將自動調用LinkTree#onNodeLinkClicked()
處理程序構建LinkIconPanel
。要保留此功能,您必須在自定義鏈接的處理程序中手動撥打onNodeLinkClicked()
。
- 1. 更改樹節點的字體顏色
- 2. 如何更改wicket linktree節點的顏色?
- 3. 更改treeview節點顏色
- 4. 更改DevComponents AdvTree節點的字體顏色
- 5. 點擊更改字體顏色
- 6. Android:點擊更改字體顏色
- 7. 更改字體顏色RTF
- 8. Javascript更改字體顏色
- 9. 更改Emacs字體顏色
- 10. 更改字體顏色
- 11. localStorage更改字體顏色
- 12. 更改字體顏色
- 13. 更改字體顏色javascript
- 14. 更改樹視圖中的子節點項目顏色wpf
- 15. Sitecore:更改內容樹節點上的文本顏色?
- 16. D3樹狀圖/集羣圖 - 改變節點的文字顏色
- 17. 更改節點或邊的顏色
- 18. 更改jstree節點的顏色
- 19. 更改Zest中節點的顏色
- 20. EXTJS:更改節點的顏色
- 21. 在protovis節點鏈接樹中更改顏色
- 22. 如何在創建字體顏色後更改字體顏色
- 23. 更改樹視圖中列的字體顏色gtk
- 24. ExtJS4 treepanel更改節點顏色
- 25. 更改部分節點顏色
- 26. 用點擊改變字體的顏色
- 27. 如何更改javascript計算的字體,顏色,大小等?
- 28. 更改NavigationDrawer的顏色點擊顏色
- 29. 如何更改GridView的字體顏色?
- 30. JColorChooser更改Java中的字體顏色
你的問題不是很清楚。如果你解釋了你想要做的事情,我們將能夠給出更好的答案。 – Pops 2011-04-06 16:06:28