- 浏览: 755563 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lgh1992314:
a offset: 26b offset: 24c offse ...
java jvm字节占用空间分析 -
ls0609:
语音实现在线听书http://blog.csdn.net/ls ...
Android 语音输入API使用 -
wangli61289:
http://viralpatel-net-tutorials ...
Android 语音输入API使用 -
zxjlwt:
学习了素人派http://surenpi.com
velocity宏加载顺序 -
tt5753:
谢啦........
Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
public class MyTree extends JFrame {
//增加带滚动条容器
private JScrollPane jScrollPane1 = new JScrollPane();
private JTree tree;
private JPopupMenu popMenu;
public JScrollPane getjScrollPane1() {
return jScrollPane1;
}
public void setjScrollPane1(JScrollPane jScrollPane1) {
this.jScrollPane1 = jScrollPane1;
}
public JPopupMenu getPopMenu() {
return popMenu;
}
public void setPopMenu(JPopupMenu popMenu) {
this.popMenu = popMenu;
}
public MyTree() {
try {
init();
treeInit();
popMenuInit();
} catch (Exception exception) {
exception.printStackTrace();
}
this.setSize(800, 600);
this.setResizable(true);
this.setMinimumSize(new Dimension(800, 600));
this.setLocationRelativeTo(null);
this.setVisible(true);
//退出时需要终止当前jvm
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//设置当前窗口的信息
private void init() {
getContentPane().setLayout(null);
setTitle("树操作");
}
//初始化景点分类树
public void treeInit() {
if (jScrollPane1 != null) {
this.remove(jScrollPane1);
}
jScrollPane1.setBounds(new Rectangle(0, 0, 800, 600));
jScrollPane1.setAutoscrolls(true);
this.getContentPane().add(jScrollPane1);
expandTree();
tree.addMouseListener(new TreePopMenuEvent(this));
this.repaint();
}
//右键点击分类导航树的菜单
private void popMenuInit() {
popMenu = new JPopupMenu();
JMenuItem addItem = new JMenuItem("添加");
addItem.addActionListener(new TreeAddViewMenuEvent(this));
JMenuItem delItem = new JMenuItem("删除");
delItem.addActionListener(new TreeDeleteViewMenuEvent(this));
JMenuItem modifyItem = new JMenuItem("修改");
modifyItem.addActionListener(new TreeModifyViewMenuEvent(this));
popMenu.add(addItem);
popMenu.add(delItem);
popMenu.add(modifyItem);
}
/**
* 完全展开一个JTree
*
* @param tree JTree
*/
public void expandTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");
tree = new JTree(root);
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) { //选中菜单节点的事件
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
}
});
tree.updateUI();
jScrollPane1.getViewport().add(tree);
}
/**
* 获取图片文件内容
*
* @param fileName
* @return
*/
public Image getImage(String fileName) {
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
BufferedInputStream bis = new BufferedInputStream(fis);
ByteBuffer bb = ByteBuffer.allocate(1024 * 1024);
byte[] buffer = new byte[1];
while (bis.read(buffer) > 0) {
bb.put(buffer);
}
ImageIcon icon = new ImageIcon(bb.array());
return icon.getImage();
} catch (IOException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
}
}
return null;
}
public JTree getTree() {
return tree;
}
/**
* popmenu点击右键的增加处理
*/
class TreeAddViewMenuEvent implements ActionListener {
private MyTree adaptee;
public TreeAddViewMenuEvent(MyTree adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
String name = JOptionPane.showInputDialog("请输入分类节点名称:");
DefaultMutableTreeNode treenode = new DefaultMutableTreeNode(name);
((DefaultMutableTreeNode) this.adaptee.getTree().getLastSelectedPathComponent()).add(treenode);
this.adaptee.getTree().expandPath(new TreePath(((DefaultMutableTreeNode) this.adaptee.getTree().getLastSelectedPathComponent()).getPath()));
this.adaptee.getTree().updateUI();
}
}
/**
* popmenu点击右键的删除处理
*/
class TreeDeleteViewMenuEvent implements ActionListener {
private MyTree adaptee;
public TreeDeleteViewMenuEvent(MyTree adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
int conform = JOptionPane.showConfirmDialog(null, "是否确认删除?", "删除景点确认", JOptionPane.YES_NO_OPTION);
if (conform == JOptionPane.YES_OPTION) {
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) (((DefaultMutableTreeNode) this.adaptee.getTree().getLastSelectedPathComponent()).getParent());
((DefaultMutableTreeNode) this.adaptee.getTree().getLastSelectedPathComponent()).removeFromParent();
this.adaptee.getTree().updateUI();
}
}
}
}
/**
* popmenu点击右键的修改处理
*/
class TreeModifyViewMenuEvent implements ActionListener {
private MyTree adaptee;
public TreeModifyViewMenuEvent(MyTree adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
String name = JOptionPane.showInputDialog("请输入新分类节点名称:");
DefaultMutableTreeNode node = (DefaultMutableTreeNode) this.adaptee.getTree().getSelectionPath().getLastPathComponent();
//改名
node.setUserObject(name);
//刷新
this.adaptee.getTree().updateUI();
}
}
/**
* 菜单点击右键的事件处理
*/
class TreePopMenuEvent implements MouseListener {
private MyTree adaptee;
public TreePopMenuEvent(MyTree adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
TreePath path = adaptee.getTree().getPathForLocation(e.getX(), e.getY()); // 关键是这个方法的使用
if (path == null) {
return;
}
adaptee.getTree().setSelectionPath(path);
if (e.getButton() == 3) {
adaptee.getPopMenu().show(adaptee.getTree(), e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public static void main(String[] args) {
try {
JFrame.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
MyTree userframe = new MyTree();
} catch (ClassNotFoundException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
发表评论
-
对字符串进行验证之前先进行规范化
2013-09-17 23:18 13957对字符串进行验证之前先进行规范化 应用系统中经常对字 ... -
使用telnet连接到基于spring的应用上执行容器中的bean的任意方法
2013-08-08 09:17 1482使用telnet连接到基于spring的应用上执行容器中 ... -
jdk7和8的一些新特性介绍
2013-07-06 16:07 10114更多ppt内容请查看:htt ... -
java对于接口和抽象类的代理实现,不需要有具体实现类
2013-06-12 09:50 2957原文链接:http://www.javaarch.net/j ... -
Java EE 7中对WebSocket 1.0的支持
2013-06-05 09:27 3846原文链接:http://www.javaarch.n ... -
Java Web使用swfobject调用flex图表
2013-05-28 19:05 1128Java Web使用swfobject调用 ... -
spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
2013-05-21 15:57 3344spring使用PropertyPlaceholderCon ... -
java国际化
2013-05-20 20:57 4478java国际化 本文来自:http://www.j ... -
RSS feeds with Java
2013-05-20 20:52 1226RSS feeds with Java 原文来自:htt ... -
使用ibatis将数据库从oracle迁移到mysql的几个修改点
2013-04-29 10:40 1679我们项目在公司的大战略下需要从oracle ... -
线上机器jvm dump分析脚本
2013-04-19 10:48 2912#!/bin/sh DUMP_PIDS=`p ... -
eclipse远程部署,静态文件实时同步插件
2013-04-06 20:18 5469eclipse 远程文件实时同步,eclipse远程 ... -
java价格处理的一个问题
2013-03-26 21:21 1841我们经常会处理一些价格,比如从运营上传的文件中将某 ... -
java 服务降级开关设计思路
2013-03-23 16:35 3772java 服务屏蔽开关系统,可以手工降级服务,关闭服 ... -
poi解析excel内存溢出
2013-03-20 22:21 6406真是悲剧啊,一个破内部使用系统20多个人使用的后 ... -
简单web安全框架
2013-03-16 11:56 1551web安全框架,主要用servlet filter方 ... -
基于servlet的简单的页面缓存框架
2013-03-11 19:27 1222基于servlet的页面级缓存框架的基本用法: 代码参考: ... -
Eclipse使用过程中出现java.lang.NoClassDefFoundError的解决方案
2013-02-01 17:22 1582如果jdk,classpath设置正确,突然在eclipse ... -
jetty对于包的加载顺序的处理
2013-01-28 22:58 41421.问题 今天在本地和测试环境用jet ... -
hsqldb源码分析系列6之事务处理
2013-01-20 15:20 1712在session的 public Result ...
相关推荐
在这个"java swing 增删改查"的小项目中,我们可以推测开发者利用Swing 创建了一个简单的数据库操作应用,允许用户对数据进行添加、删除、修改和查询。 在Java Swing中,主要涉及以下几个核心知识点: 1. **容器与...
通过学习和实践这个Java+Swing入门级增删改查源码,开发者可以快速掌握Swing的基本用法,理解如何处理用户交互,以及如何进行简单的文件操作。进一步,可以扩展此基础,学习更高级的Swing特性,如模型视图控制器...
在"Swing写的与数据库的增删改查操作"中,我们探讨的是如何使用Swing来构建用户界面,同时通过Java Database Connectivity (JDBC) API进行数据库的CRUD(Create、Read、Update、Delete)操作。这个项目可能涉及了...
Java Swing 是Java编程语言中用于构建桌面应用程序用户界面的一个库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一系列组件,如按钮、文本框、菜单等,用于创建功能丰富的图形用户界面(GUI)。在...
Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的底层图形支持,这使得Swing应用具有跨平台的特性。 首先,Swing提供了丰富的组件库,包括JButton、JLabel、...
在Swing中,`JTree`组件是用于显示和操作树形数据结构的控件。当我们处理大量数据时,一次性加载所有节点可能会导致性能问题,这时就需要用到“懒加载”(Lazy Loading)技术。 懒加载是一种优化策略,它只在需要时...
Java Swing是Java GUI(图形用户界面)库,用于构建桌面应用程序。在Swing中实现数据的增删改查(CRUD:Create, Read, Update, Delete)是开发业务应用程序时常见的需求。本项目通过采用MVC(Model-View-Controller...
Java Swing 是Java平台上用于构建图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。在Java中,Swing提供了丰富的组件集,允许开发者创建美观且功能强大的桌面应用程序。"java+swing漂亮...
本文将详细介绍如何使用Java Swing实现一个简单的数据库管理系统,该系统能够完成基本的增删改查操作。 #### 二、项目背景与目标 本项目旨在通过Java Swing构建一个用户友好的界面,实现对数据库的基本操作。主要...
基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。Swing 提供了一种可定制外观和感觉(LookAndFeel)的方法,使得开发者可以改变应用的视觉风格,以满足不同用户...
在Java Swing界面中,你可以创建按钮、文本框等组件来控制串口的操作。例如,一个“打开串口”按钮,一个“关闭串口”按钮,一个文本框显示接收到的数据,以及一个文本框用于用户输入要发送的数据。通过事件监听,当...
【标题】:基于Java Swing开发的资源管理器利用了BeautyEye美化库,为原生的Java ZIP功能提供了更美观的用户界面。 【描述】:在Java编程中,Swing是用于构建图形用户界面(GUI)的工具包。它提供了一系列组件,如...
Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端...
基于Java Swing实现答题系统的技术要点 本文将详细介绍基于Java Swing实现答题系统的技术要点,涵盖了GUI设计、事件处理、swing组件使用、Java图形化编程等多个方面的知识点。 一、GUI设计 在本文中,我们使用了...
标题中的"demo.rar_DEMO_java增删改demo_swing java"表明这是一个关于Java编程的示例项目,重点展示了如何在Swing环境下实现数据的增、删、改操作。Swing是Java的一个图形用户界面(GUI)工具包,常用于开发桌面应用...
Java Swing是Java标准库中的一个组件集合,用于构建桌面应用程序用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套轻量级的GUI(图形用户界面)组件,支持丰富的交互功能。本离线API文档详细阐述了...
基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分通过项目,代码完整下载即用,无需修改确保可以运行。 基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分...
通过Java的JDBC(Java Database Connectivity)接口,Java代码可以连接到MySQL数据库,执行SQL查询语句,实现数据的增删改查操作。 课程设计报告通常会包含以下内容: 1. 系统需求分析:明确系统的目标和功能,例如...