import javax.swing.JTree; //导入方法依赖的package包/类

public PackageBrowser(JFrame frame, String title, boolean modal) {

super(MainFrame.mainFrame,title, modal);

addWindowListener(WindowDisposer.getDisposer());

addKeyListener(WindowDisposer.getDisposer());

ActionEventHandler actionEventH = new ActionEventHandler();

LibComboActionEvnetHandler libComboHandler = new LibComboActionEvnetHandler();

PackageListSelectionEventHandler packageListSelectionEventH = new PackageListSelectionEventHandler();

ClassListSelectionEventHandler classListSelectionEventH = new ClassListSelectionEventHandler();

TreeExpansionEventHandler treeExpansionEventH = new TreeExpansionEventHandler();

tabbedPane = new JTabbedPane();

//List view tab

libListRenderer = new LibComboCellRenderer();

packageListRenderer = new PackageListCellRenderer();

classListRenderer = new ClassListCellRenderer();

libraryCombo = new JComboBox();

libraryCombo.setRenderer(libListRenderer);

libraryCombo.addActionListener(libComboHandler);

packageList = new JList();

packageList.setCellRenderer(packageListRenderer);

packageList.addListSelectionListener(packageListSelectionEventH);

classList = new JList();

classList.setCellRenderer(classListRenderer);

classList.addListSelectionListener(classListSelectionEventH);

listViewTab = new ListViewPanel(libraryCombo, packageList, classList);

tabbedPane.addTab("ListView", listViewTab);

tabbedPane.setTabPlacement(SwingConstants.TOP);

tabbedPane.setSelectedIndex(0);

tree = new JTree();

tree.putClientProperty("JTree.lineStyle", "Angled");

tree.addTreeExpansionListener(treeExpansionEventH);

treeRenderer = new PackageBrowserTreeCellRenderer();

tree.setCellRenderer(treeRenderer);

//Tree view tab

treeViewTab = new TreeViewPanel(tree);

treeViewTab.setPackageBrowser(this);

tabbedPane.addTab("TreeView", treeViewTab);

//buttons panel

selectBtn = new JButton("Select");

selectBtn.setActionCommand("Select");

selectBtn.addActionListener(actionEventH);

selectBtn.setEnabled(true);

cancelBtn = new JButton("Close");

cancelBtn.setActionCommand("Close");

cancelBtn.addActionListener(actionEventH);

btnP = new JPanel();

FlowLayout btnL = new FlowLayout();

btnP.setLayout(btnL);

btnP.add(selectBtn);

btnP.add(cancelBtn);

setFirstData();

getContentPane().add(tabbedPane, BorderLayout.CENTER);

getContentPane().add(btnP, BorderLayout.SOUTH);

getContentPane().add(new JPanel(),BorderLayout.WEST);

getContentPane().add(new JPanel(),BorderLayout.EAST);

setSize(250,480);

setLocation(150, 150);

this.setResizable(false);

}

java jtree 监听_Java JTree.addTreeExpansionListener方法代码示例相关推荐

  1. JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例

    import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类 /** * Get the "primary r ...

  2. java中isolate时间_Java HikariDataSource.setIdleTimeout方法代码示例

    import com.zaxxer.hikari.HikariDataSource; //导入方法依赖的package包/类 private HikariDataSource createHikari ...

  3. java getattribute为空_Java TransMeta.getAttribute方法代码示例

    import org.pentaho.di.trans.TransMeta; //导入方法依赖的package包/类 @Override public void getData( TransMeta ...

  4. java接收rowtype类型_Java PhysType.getJavaRowType方法代码示例

    import org.apache.calcite.adapter.enumerable.PhysType; //导入方法依赖的package包/类 public Result implementSp ...

  5. java okhttp设置超时_Java OkHttpClient.setWriteTimeout方法代码示例

    import com.squareup.okhttp.OkHttpClient; //导入方法依赖的package包/类 @Bean @ConditionalOnMissingBean public ...

  6. java打印设置缩放_Java PrintSetup.setPaperSize方法代码示例

    import org.apache.poi.ss.usermodel.PrintSetup; //导入方法依赖的package包/类 /** * 复制模板工作表的打印区域到数据工作表中 * * @au ...

  7. java sslcontext详解_Java SslContext.newEngine方法代码示例

    import io.netty.handler.ssl.SslContext; //导入方法依赖的package包/类 /** * 业务线程池 * 用以单独处理业务handler,避免造成IO线程的阻 ...

  8. java sslcontext详解_Java SslContext.newServerContext方法代码示例

    import io.netty.handler.ssl.SslContext; //导入方法依赖的package包/类 public void start() throws CertificateEx ...

  9. java中setattr功能_Java Controller.setAttr方法代码示例

    import com.jfinal.core.Controller; //导入方法依赖的package包/类 /** * 为了规范代码,这里做了一点类是Spring的ResponseEntity的东西 ...

最新文章

  1. 全麦吐司和普通吐司的区别_全麦面包和普通面包的区别
  2. 【转】IOS动画的实现,其实很简单
  3. ARM LCD简单绘图API
  4. 吉林省统考计算机英语作文,2019年吉林省学位英语作文必背范文(我最……的题材) - 希赛网...
  5. vue学习之二ECMAScript6标准
  6. 【转】CT中的“层“与“排“的区别
  7. Java 并发编程之 ThreadLocal 线程局部变量
  8. java的断点条件,java – 非行依赖的条件断点
  9. 2021陕西高考单招成绩查询,2020陕西高考高职单招成绩一分一段表高考成绩排名...
  10. 关于如何学好游戏3D引擎编程的一些经验
  11. Java阶乘中数值溢出
  12. Lammps之循环定压比热熔计算
  13. STM32F030C8T6 STM32F307VCT6 STM32F107VCT6结构图( block diagram)位置是在数据手册中
  14. java cursor_cursor的基本使用方法
  15. Error:NgdBuild:604解决方法
  16. SPSS多元线性回归结果分析
  17. 电子发票税费计算问题
  18. 打卡伦敦博物馆,在时空之旅中探索你未知的城市
  19. VMware虚拟机多开克隆教程
  20. Pycharm:注释、删除所有注释

热门文章

  1. Spring 这些能升华代码的技巧,可能会让你爱不释手
  2. 知乎 Hive Metastore 实践:从 MySQL 到 TiDB
  3. 首个智能风控国际标准发布,蚂蚁风控技术入局全球
  4. 不再惧怕!二叉树结构相关算法总结 | 原力计划
  5. 云原生就一定安全吗?
  6. 耐克为何不接受加密货币付款?
  7. 面试稳了!网易资深工程师详解运维面经!
  8. 程序员如何通过 Git 来更好地提交消息?
  9. 程序员如何 Get 分布式锁的正确姿势?| 技术头条
  10. GitHub 被微软收购后的 52 天,改版并放弃了 jQuery !