當前位置:編程學習大全網 - 源碼下載 - Swing程序題:用JTree創建壹個節點樹,當鼠標點節點時會彈出壹個框來顯示當前子節點的信息。

Swing程序題:用JTree創建壹個節點樹,當鼠標點節點時會彈出壹個框來顯示當前子節點的信息。

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());

}

}

}

  • 上一篇:第二編 純粹自然科學是怎樣可能的
  • 下一篇:hex文件轉換成C語言
  • copyright 2024編程學習大全網