-
大小: 1.18MB文件類型: .7z金幣: 1下載: 0 次發布日期: 2023-08-30
- 語言: 其他
- 標簽: idea插件??toolwindow??
資源簡介
idea插件開發網上找了一堆例子都不能跑,東拼西湊用了一整天終于搞出一個能跑的了,這里是用toolwindow里嵌入一個tree作為例子
代碼片段和文件信息
package?tools;
import?com.intellij.openapi.project.Project;
import?com.intellij.openapi.wm.ToolWindow;
import?com.intellij.openapi.wm.ToolWindowFactory;
import?com.intellij.ui.content.Content;
import?com.intellij.ui.content.ContentFactory;
import?org.jetbrains.annotations.NotNull;
import?javax.swing.*;
import?javax.swing.plaf.FontUIResource;
import?javax.swing.tree.DefaultMutableTreeNode;
import?javax.swing.tree.DefaultTreeModel;
import?java.awt.*;
import?java.util.Enumeration;
public?class?ToolFactoryCompute?implements?ToolWindowFactory?{
????private?ToolWindow?myToolWindow;
????private?JPanel?mPanel;
????private?JTree?tree1;
????private?JScrollPane?scrollPane;
????@Override
????public?void?createToolWindowContent(@NotNull?Project?project
????????????????????????????????????????@NotNull?ToolWindow?toolWindow)?{
????????myToolWindow?=?toolWindow;
????????this.initTreeAndPane();
????????ContentFactory?contentFactory?=?ContentFactory.SERVICE.getInstance();
????????Content?content?=?contentFactory.createContent(mPanel?““?false);
????????toolWindow.getContentManager().addContent(content);
????}
????@Override
????public?void?init(ToolWindow?window)?{
????}
????/**
?????*?初始化控件
?????*/
????public?void?initTreeAndPane(){
????????//定義字體
????????Font?fnt?=?new?Font(“Microsoft?YaHei?UI“?Font.PLAIN?15);
????????//找到字體的資源管理
????????FontUIResource?fontRes?=?new?FontUIResource(fnt);
????????for?(Enumeration?keys?=?UIManager.getDefaults().keys();?keys.hasMoreElements();?)?{
????????????object?key?=?keys.nextElement();
????????????object?value?=?UIManager.get(key);
????????????if?(value?instanceof?FontUIResource)
????????????????UIManager.put(key?fontRes);
????????}
????????//tree根目錄
????????DefaultMutableTreeNode??root?=?new?DefaultMutableTreeNode(“XX公司“);
????????//子節點
????????DefaultMutableTreeNode?node1?=?new?DefaultMutableTreeNode(“研發部“);
????????DefaultMutableTreeNode?node2?=?new?DefaultMutableTreeNode(“行政部“);
????????DefaultMutableTreeNode?node3?=?new?DefaultMutableTreeNode(“物流部“);
????????DefaultMutableTreeNode?node4?=?new?DefaultMutableTreeNode(“人事部“);
????????DefaultMutableTreeNode?node5?=?new?DefaultMutableTreeNode(“財務部“);
????????root.add(node1);
????????root.add(node2);
????????root.add(node3);
????????root.add(node4);
????????root.add(node5);
????????//構造一個treeModel?對象,進行刷新樹操作
????????DefaultTreeModel?dt?=?new?DefaultTreeModel(root);
????????tree1.setModel(dt);
????????//tree1.setRootVisible(true);
????????Dimension?screenSize?=?Toolkit.getDefaultToolkit().getScreenSize();?//得到屏幕的尺寸
????????//設置主面板的大小
????????mPanel.setPreferredSize(new?Dimension((int)screenSize.getWidth()-50?(int)?screenSize.getHeight()/3*2));
????????//tree?設置大小
????????tree1.setPreferredSize(new?Dimension((int)screenSize.getWidth()-50?(int)?screenSize.getHeight()/3*2));
????????///構造一個?有滾動條的面板
????????//設置滾動條面板位置
????????scrollPane.setPreferredSize(new?Dimension((int)screenSize.getWidth()-50?(int)?screenSize.getHeight()/3*2-50));
????????//將tree添加道滾動條面板上
???????
評論
共有 條評論