JTree实现好友分组示例

简单的好友分组效果展示:

JTree好友分组效果展示

示例代码:

/**
 * Title: Friend
 * Description:  好友
 * @author Herrona
 */
public class Friend {
	int id;
	String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return  name ;
	}
	
}
/**
 * Title: Group
 * Description: 分组 
 * @author Herrona
 */
public class Group {
	int id;
	String name;
	List<Friend> friendList = new ArrayList<>();
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<Friend> getFriendList() {
		return friendList;
	}
	public void setFriendList(List<Friend> friendList) {
		this.friendList = friendList;
	}
	@Override
	public String toString() {
		return name;
	}
	
}
/**
 * Title: TreeFrame 
 * Description:
 * @author Herrona
 */
public class TreeFrame extends JFrame {

	List<Group> grpList = new ArrayList<Group>();

	public TreeFrame() {
		initFrame();
		initList();
		initComponent();
	}
	
	/**
	 * 初始化数据
	 */
	private void initList() {
		for (int i = 1; i <= 10; i++) {
			Group grp = new Group();
			grp.setId(i);
			grp.setName("分组" + i);
			List<Friend> list = grp.getFriendList();
			for (int j = 1; j <= 10; j++) {
				Friend friend = new Friend();
				friend.setId(j);
				friend.setName("Herrona" + j);
				list.add(friend);
			}
			grp.setFriendList(list);
			this.grpList.add(grp);
		}
	}
	
	/**
	 * 初始化窗口
	 */
	private void initFrame() {
		this.setTitle("树");
		this.setSize(300, 500);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/**
	 * 初始树
	 */
	private void initComponent() {
		DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的好友");
		DefaultTreeModel model = new DefaultTreeModel(root);
		JTree tree = new JTree(model);
		for (Group grp : grpList) {
			DefaultMutableTreeNode grpNode = new DefaultMutableTreeNode(grp);
			List<Friend> list = grp.getFriendList();
			for (Friend friend : list) {
				DefaultMutableTreeNode friNode = new DefaultMutableTreeNode(friend);
				grpNode.add(friNode);
			}
			root.add(grpNode);
		}
		tree.setRowHeight(35);
		JScrollPane pane = new JScrollPane(tree);
		this.add(pane);
	}

	public static void main(String[] args) throws UnsupportedLookAndFeelException {
		UIManager.setLookAndFeel(new NimbusLookAndFeel());
		TreeFrame frame = new TreeFrame();
		frame.setVisible(true);

	}
}

猜你喜欢

转载自blog.csdn.net/qq_42864422/article/details/108570222
今日推荐