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 ...
随机推荐
- Date的使用
方法 说明 Date() 返回当日的日期和时间 getDate() 获取当天(1-31) getDay() 获取当天的星期(0-6) getMonth() 获取月份(0-11) getFullYear ...
- 【转】GIT和SVN之间的五个基本区别
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果 ...
- android中自定义shape
<shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> & ...
- C# BackgroundWorker组件学习
C# BackgroundWorker组件学习 C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用Ba ...
- jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别
jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别 现在做的一个项目,所使用的框架是基于jQuery扩展的,于是平时学了一下jQuery,了解到了它的扩展函数: ...
- 目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建
目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建 通过上面的介绍我们知道利用HttpControllerSelector可以根据 ...
- linux学习之linux的hostname修改详解《转》
linux的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname.也可以直接cat /proc/sys/kernel/hostname查看. #hostna ...
- C#内获取泛型方法及扩展
C#内获取泛型方法及扩展 C#内我们可以通过反射来动态获取实例方法和静态方法,不管方法存在多少个重载都可以通过GetMethod内的第二个参数去筛选出所要获取的方法,代码如下: type.GetMet ...
- 关于给予webApp框架的开发工具
webApp 1.phonegap webApp即基于html+css+javascript,对于新手会联想好多及疑问(如数据的添删查修如何实现,参数传递如何实现) 添加查修使用jsonp跨域实现的 ...
- 自己动手写spring容器(1)
毕业刚刚一年多一点,毕业了后也顺利的进入了一家著名的互联网公司,做的是后台系统,用的呢也是SSI(struts2,spring)框架,平时做做项目,也已足够了,但是感觉越来越没动力了,越来越没有激情了 ...