swing表格树

swing表格树,第1张

http://java.sun.com/products/jfc/tsc/articles/treetable1/

这个我以前用过,感觉写的还盯棚可以,它的思凯樱则想就是使用树做为单元格的渲染器。

希望对你有所颂液帮助!

import javax.swing.JFrame

import javax.swing.JOptionPane

import javax.swing.JScrollPane

import javax.swing.JTree

import javax.swing.ScrollPaneConstants

import javax.swing.UIManager

import javax.swing.UnsupportedLookAndFeelException

import javax.swing.event.TreeSelectionEvent

import javax.swing.event.TreeSelectionListener

import javax.swing.tree.DefaultMutableTreeNode

import javax.swing.tree.DefaultTreeModel

/**

*

* @author 逝水

*

*/

public class JTreeDemo extends JFrame implements TreeSelectionListener{

private static final long serialVersionUID = -6209666185329417356L

//树组件

protected JTree jTree 

public JTreeDemo(){

init()

}

//初始化

private void init() {

jTree 凯碰=  new JTree()

//树御孙消节点的相关数据

DefaultMutableTreeNode root = new DefaultMutableTreeNode("三国名将")

DefaultMutableTreeNode shu = new DefaultMutableTreeNode("蜀国")

DefaultMutableTreeNode wei = new DefaultMutableTreeNode("魏国")

DefaultMutableTreeNode wu = new DefaultMutableTreeNode("吴国")

shu.add(new DefaultMutableTreeNode("关羽"))

shu.add(new DefaultMutableTreeNode("张飞"))

shu.add(new DefaultMutableTreeNode("镇知赵云"))

shu.add(new DefaultMutableTreeNode("马超"))

shu.add(new DefaultMutableTreeNode("黄忠"))

wei.add(new DefaultMutableTreeNode("张辽"))

wei.add(new DefaultMutableTreeNode("典韦"))

wei.add(new DefaultMutableTreeNode("夏侯惇"))

wei.add(new DefaultMutableTreeNode("许褚"))

wei.add(new DefaultMutableTreeNode("徐晃"))

wu.add(new DefaultMutableTreeNode("太史慈"))

wu.add(new DefaultMutableTreeNode("甘宁"))

wu.add(new DefaultMutableTreeNode("孙策"))

wu.add(new DefaultMutableTreeNode("周瑜"))

wu.add(new DefaultMutableTreeNode("陆逊"))

root.add(shu)

root.add(wei)

root.add(wu)

//树的数据模型

DefaultTreeModel model = new DefaultTreeModel(root)

//设置数据模型

jTree.setModel(model)

// 展开所有树

for (int i = 0 i < jTree.getRowCount() i++)

jTree.expandRow(i)

//添加事件

jTree.addTreeSelectionListener(this)

//滚动面板

JScrollPane jScrollPane = new JScrollPane(jTree,

ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER)

//添加树到滚动面板

jScrollPane.getViewport().add(jTree)

//添加滚动面板到窗口中

this.getContentPane().add(jScrollPane)

this.setTitle("JTree的事件例子")

this.pack()

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String[] args){

//Windows风格

//String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"

//Windows Classic风格

//String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"

//系统当前风格

String lookAndFeel = UIManager.getSystemLookAndFeelClassName()

try {

UIManager.setLookAndFeel(lookAndFeel)

} catch (ClassNotFoundException e) {

e.printStackTrace()

} catch (InstantiationException e) {

e.printStackTrace()

} catch (IllegalAccessException e) {

e.printStackTrace()

} catch (UnsupportedLookAndFeelException e) {

e.printStackTrace()

}

JTreeDemo demo = new JTreeDemo()

demo.setVisible(true)

}

@Override

public void valueChanged(TreeSelectionEvent e) {

//获取选择的节点

DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree

.getLastSelectedPathComponent()

if(node.getLevel() == 0){

//显示提示信息

JOptionPane.showMessageDialog(null,

node.getUserObject()+": 共"+node.getChildCount()+"个国家")

}else if(node.getLevel() == 1){

//显示提示信息

JOptionPane.showMessageDialog(null,

node.getUserObject()+": 共"+node.getChildCount()+"名名将")

}else if(node.getLevel() == 2){

//显示提示信息

JOptionPane.showMessageDialog(null, node.getParent()+"名将: "+

node.getUserObject())

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8154837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存