java jtree怎么初始化,java – 如何设置JTree“ctrl”选择模式始终启用
我想我找到了解决方案
您将需要扩展JTree和DefaultTreeSelectionModel.
JTree相关方法:
/
/
/// Implement selection using "adding" only logic. //
/
/
@Override
public void setSelectionPath(TreePath path) {
System.out.println("MLDebugJTree: setSelectionPath(" + path + ")");
addSelectionPath(path);
return;
//super.setSelectionPath(path);
}
@Override
public void setSelectionPaths(TreePath[] paths) {
System.out.println("MLDebugJTree: setSelectionPaths(" + paths + ")");
addSelectionPaths(paths);
return;
}
@Override
public void setSelectionRow(int row) {
System.out.println("MLDebugJTree: setSelectionRow(" + row + ")");
addSelectionRow(row);
return;
//super.setSelectionRow(row);
}
@Override
public void setSelectionRows(int[] rows) {
System.out.println("MLDebugJTree: setSelectionRows(" + rows + ")");
addSelectionRows(rows);
return;
//super.setSelectionRows(rows);
}
DefaultSelectionModel相关方法:
package com.ml.tree2.model.impl;
import javax.swing.tree.DefaultTreeSelectionModel;
import javax.swing.tree.TreePath;
public class MLTreeSelectionModel extends DefaultTreeSelectionModel {
private static final long serialVersionUID = -4270031800448415780L;
@Override
public void addSelectionPath(TreePath path) {
// Don't do overriding logic here because addSelectionPaths is ultimately called.
super.addSelectionPath(path);
}
@Override
public void addSelectionPaths(TreePath[] paths) {
if(paths != null) {
for(TreePath path : paths) {
TreePath[] toAdd = new TreePath[1];
toAdd[0] = path;
if (isPathSelected(path)) {
// If path has been previously selected REMOVE THE SELECTION.
super.removeSelectionPaths(toAdd);
} else {
// Else we really want to add the selection...
super.addSelectionPaths(toAdd);
}
}
}
}
HTH.
java jtree怎么初始化,java – 如何设置JTree“ctrl”选择模式始终启用相关推荐
- java new 删除吗,java泛型对象初始化-java泛型对象会实例化吗T t=new T()
java泛型对象初始化--java泛型对象能实例化吗T t=new T() java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 泛型反射的 ...
- 初始化java工具失败,“初始化 Java 工具”期间发生了内部错误, java.lang.NullPointerException...
今天刚打开eclipse就报了这个错误,我怀疑是昨晚想关电脑的时候,关闭eclipse太快,没有等待工作空间保存就关了电脑的缘故 错误如图: (图片来自下方链接博客,因为忘记截图了) 我百度后按照提示 ...
- 云计算中封闭式的Java部署模型 | CORE JAVA WEEK
嘉宾 | 谷歌高级软件工程师 周江丽 整理 | 华章编辑 高婧雅 在[Java核心技术大会2022 | 语言.平台和趋势专场]上,来自谷歌的高级软件工程师.OpenJDK Commiter和Revie ...
- RingerMode 设置和勿扰模式关系
问题引入,在项目中,Android6.0项目中,客户要求去掉勿扰模式,当时我们只是去掉了勿扰模式的界面显示部分,即在SystemUI 的VolumeDialog.java类当中去掉了勿扰模式显示的部分 ...
- java类成员初始化_简单了解Java类成员初始化顺序
这篇文章主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类中包含7中成员: 1.静态变量 static 2 ...
- java编程思想 初始化_《java编程思想》_第五章_初始化与清理
初始化和清理是涉及安全的两个问题,java中采用了构造器,并额外提供了"垃圾回收器",对于不再使用的内存资源,垃圾回收器能自动将其释放. 一.用构造器确保初始化 java中,通过提 ...
- 如何设置工作流到了某一节点自动执行java方法_2019年JAVA最常见面试题汇总(收藏)...
java基础以及多个"比较" 1.Collections.sort排序内部原理 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeS ...
- java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈
Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...
- Java必突-JVM知识专题(一): Java代码是如何跑起来的+类加载到使用的过程+类从加载到使用核心阶段(类初始化)+类加载的层级结构+什么是JVM的内存区域划分?Java虚拟机栈、Java堆内存
前言: 该章节知识点梳理:本文主要是入门和了解jvm,不做深入 1.Java代码是如何运行起来的? 2.类加载到使用的过程? 3.验证准备和初始化的过程? 4.类从加载到使用核心阶段:初始化.类加载器 ...
最新文章
- Python迁移MySQL数据到MongoDB脚本
- 最常用的10个Matlab快捷键,助你编程更高效
- 全网唯一的Microsoft?NETFramework3?5SP1简体中文完整版离线安装包安装netframewo
- FreeRTOS的中断优先级配置小结
- tensorflow怎样调用gpu_tensorflow基本用法(图,会话,tensor,变量等)
- C51语言支持哪些数据类型,C51编译器支持的数据类型(1)
- ES6+mocha+istanbul,针对ES6语法的带覆盖率检查的mocha测试
- 打印机设置虚拟服务器,虚拟机打印机服务器设置
- Outlook Express 错误代码表
- linux如何安装python环境变量中,Windows和linux环境下python安装及环境变量的配置
- 用Python识别验证码
- 【BZOJ2989】数列(CDQ分治,扫描线)
- 游戏开发之C++对C的扩展(C++基础)
- Flash Builder实用快捷键集锦
- 2017年迪培思昆明国际广告标识及LED照明展会刊(参展商名录)
- docker启动mysql失败(闪退)原因
- 视频会议,远程协助平台接入亮亮视野AR眼镜,UVC摄像头方案
- 详谈redis命令之集合(SET)
- SuperMap 产品安全白皮书
- 车联网上云最佳实践(一)