简单的好友分组效果展示:
示例代码:
/**
* 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);
}
}