JTree事件
package com.wf; import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import java.awt.*; class PaintUserData
{
public static Color _color = Color.BLACK; } class ProjectTree extends JTree implements TreeSelectionListener
{ private JPanel _panel; public ProjectTree(JPanel panel) {
addTreeSelectionListener(this);
_panel = panel;
} @Override
public void valueChanged(TreeSelectionEvent e) {
TreePath path = e.getNewLeadSelectionPath();
DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent(); if (node.getUserObject().equals("red"))
{
PaintUserData._color = Color.red; }
else if (node.getUserObject().equals("blue"))
{
PaintUserData._color = Color.blue; }
else if (node.getUserObject().equals("yellow"))
{
PaintUserData._color = Color.yellow;
}
else if (node.getUserObject().equals("violet"))
{
PaintUserData._color = Color.CYAN;
}
else
{
PaintUserData._color = Color.black; }
_panel.repaint();
} } class PaintPanel extends JPanel
{ public PaintPanel() { } @Override
public void paint(Graphics g) {
super.paint(g); g.setColor(PaintUserData._color);
g.drawLine(0, 0, 400, 400); } } class MainWidget extends JComponent
{
private GridBagConstraints _gbScrollPane;
private GridBagConstraints _gbPaintPanel;
private GridBagLayout _layout; private JScrollPane _scrollPane;
private ProjectTree _projectTree;
private PaintPanel _paintPanel;
public MainWidget() {
_gbScrollPane = new GridBagConstraints();
_gbPaintPanel = new GridBagConstraints(); _gbScrollPane.weightx = 0.1;
_gbScrollPane.weighty = 1;
_gbScrollPane.gridx = 0;
_gbScrollPane.gridy = 0;
_gbScrollPane.fill = GridBagConstraints.BOTH; _gbPaintPanel.weightx = 0.9;
_gbPaintPanel.weighty = 0;
_gbPaintPanel.gridx = 1;
_gbPaintPanel.gridy = 0;
_gbPaintPanel.fill = GridBagConstraints.BOTH; _layout = new GridBagLayout();
setLayout(_layout); _scrollPane = new JScrollPane(); _paintPanel = new PaintPanel();
_projectTree = new ProjectTree(_paintPanel); _scrollPane.getViewport().add(_projectTree);
add(_scrollPane, _gbScrollPane); add(_paintPanel, _gbPaintPanel); } }
public class Test01 extends JFrame
{
private MainWidget _mainWidget; public Test01() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); _mainWidget = new MainWidget(); getContentPane().add(_mainWidget);
} public static void main(String[] args) throws Exception{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() { Test01 f = new Test01();
f.setSize(1024, 800);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}

JTree事件的更多相关文章
- JNI详解---从不懂到理解
转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...
- JTree单击事件
import javax.swing.*; import javax.swing.tree.*; import java.awt.FlowLayout; import java.awt.GridLay ...
- JTree使用
package JTree; import java.awt.Component; import javax.swing.Icon; import javax.swing.JTree; import ...
- Swing组件Jtree,JTablePane选项卡运用
今天开始写技术博客,说实话,本没有什么技术,说是总结也好,说是分享也罢,总之是想自己有意识的做一些事情,作为一名即将毕业的大学生,总是想以最好的状态,去面向社会,今天就是我准备好了的时候,本人将技术博 ...
- Jtree(节点的渲染+资源管理器)(2)
上一次我们建立一个比较简单的资源管理器,这次我们说一下上面的资源管理器的问题,并且得尽量的贴近windows的资源管理器. 这样一个简单的资源管理树就完成了,下面我们说说它的问题: ① 图片和外观和W ...
- jtree(选择框)
jtree一般的用法是: 1. 展示电脑中文件的层次结构,如图所示. 具体的代码: package jtree; import java.io.File; import javax.swing.JTr ...
- JAVA GUI学习 - JTree树结构组件学习 ***
public class JTreeKnow extends JFrame { public JTreeKnow() { this.setBounds(300, 100, 400, 500); thi ...
- JTree demo
JFrame居中方法一: setLocationRelativeTo(null); 注意:必须在整个frame初始化完成后再加上此语句,否则将显示在屏幕右下角 方法二: private Dimen ...
- Java Swing 树状组件JTree的使用方法(转)
树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识.展开 节点是一个非叶节点(由返回 false 的 TreeModel ...
随机推荐
- web中纯java获取配置文件中的数据
/*********获取配置文件,但配置文件中的值改变,不会随着值的改变也获取的参数值改变**********/ /** * 原因是因为,类装载,装载完后,不会再去装载了 * */// I ...
- ios中mvc的FormsAuthentication.SetAuthCookie(cookieUserName, false)失败
如果楼主使用.net开发,要注意FormsAuthentication.SetAuthCookie 方法的使用会导致ios出现该问题.因为这个方法在ios设备上是把票据加入到url中,导致url和你的 ...
- 让VS2010记住TFS的登陆用户名和密码
用VS进行团队开发的都知道,每次打开VS连接TFS的时候,都要提示输入用户名和密码,每次都这样无疑感觉太多此一举了(当然你不想别人操作你的电脑就直接进入项目就没必要这么做),为了像连接远程那样可以记住 ...
- 一个小团队TDD游戏及实践
介绍的这个游戏是自己根据目前带的团队的实际情况来制定的, 在游戏实践过程中,收到了较好的效果,故打算把这个游戏分享出来,一是分享一下实践,而是集思广益,不断完善,更好的利用游戏来锻炼队伍.下面就将游戏 ...
- GitHub 简易使用
笔记内容 学习笔记-段玉磊 Github Github 命令 写这篇文章主要写一下如何运用终端命令,进行Git的配置以及使用,由于本人我不太习惯使用图形IDE,效率没有命令行高,我还是推荐使用命令行进 ...
- C#伪彩色处理
伪彩色处理是指将灰度图像转换成彩色图象.因为人眼对于彩色的分辨能力远高于对灰度图像的分辨能力,所以将灰度图像转换成彩色可以提高人眼对图像细节的辨别能力.伪彩色并不能真实的反映图像像的彩色情况. 效果图 ...
- PRML 第三章 - 线性回归
这段时间组里在有计划地学习书籍PRML (Pattern Recognition and Machine Learning),前两天自己做了一个里面第三章linear regression的分享,这里 ...
- IceMx.Mvc 我的js MVC 框架 开篇
开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...
- (转)js网址验证
这个url的正则表达式判断的js!是比较全面的.它验证的情况包括!IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!是我见过的最全面的url验证了!可能还有遗漏的! <s ...
- HtmlAgilityPack实战代码
C#采集代理服务器ip并设置IE代理--HtmlAgilityPack实战代码 今天在博客园看到一篇文章,说是C#采集某某的数据,其实做采集小软件很久了, 用的最好的还是HtmlAgilityPack ...