<img src="https://img-blog.youkuaiyun.com/20151112194812678?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />package GUITask1;
/**
* setBorder方法测试
*
* TitleBorder类测试
*/
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.border.TitledBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
public class Task1 extends JFrame {
Task1Panel taskPanel = new Task1Panel();
// 构造方法
public Task1() {
// 添加
this.add(taskPanel);
// 属性
this.setTitle("树测试");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(500, 250, 400, 300);
this.setVisible(true);
}
public static void main(String args[]) {
new Task1();
}
}
class Task1Panel extends JPanel implements TreeSelectionListener {
// 决定选什么颜色的画笔
private int paintColor = 0;
// 实现了Border接口
TitledBorder titleBorder = null;
// 定义滚动条
JScrollPane jsp1 = null;
// 定义节点
DefaultMutableTreeNode rootNode1 = null;
DefaultMutableTreeNode childNode1_1 = null;
DefaultMutableTreeNode childNode1_2 = null;
DefaultMutableTreeNode childNode1_1_1 = null;
DefaultMutableTreeNode childNode1_2_1 = null;
// 定义树
JTree tree1 = null;
// 构造方法
public Task1Panel() {
// 获得面板方法
getTask1Panel();
}
public JPanel getTask1Panel() {
// 初始化
titleBorder = new TitledBorder(null, "我是一个边框",
TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.TOP, new Font(
"sansserif", Font.BOLD, 12), new Color(59, 59, 59));
rootNode1 = new DefaultMutableTreeNode("背景设置");
childNode1_1 = new DefaultMutableTreeNode("主题1");
childNode1_1_1 = new DefaultMutableTreeNode("红色");
childNode1_2 = new DefaultMutableTreeNode("主题2");
childNode1_2_1 = new DefaultMutableTreeNode("蓝色");
jsp1 = new JScrollPane();
jsp1.setBounds(0, 20, 100, 300);
// 添加
childNode1_1.add(childNode1_1_1);
childNode1_2.add(childNode1_2_1);
rootNode1.add(childNode1_1);
rootNode1.add(childNode1_2);
tree1 = new JTree(rootNode1);
// 设置监听
tree1.addTreeSelectionListener(this);
jsp1.add(tree1);
this.add(jsp1);
// 创建一个列标题视口(如果有必要),设置其视图然后将此列标题视口添加到滚动窗格
jsp1.setColumnHeaderView(tree1);
// 设置边框
this.setBorder(titleBorder);
// 属性
this.setLayout(null);
return this;
}
//
public int getPaintColor() {
return paintColor;
}
@Override
public void paint(Graphics g) {
super.paint(g);
switch (paintColor) {
case 0:
break;
case 1:
g.setColor(Color.red);
break;
case 2:
g.setColor(Color.blue);
break;
}
g.fillRect(100, 0, 300, 300);
}
@Override
public void valueChanged(TreeSelectionEvent e) {
if (!tree1.isSelectionEmpty()) {
// 对第一个树
TreePath selectionPaths1 = tree1.getSelectionPath();
Object path1 = selectionPaths1.getLastPathComponent();
DefaultMutableTreeNode node1 = (DefaultMutableTreeNode) path1;
String userObject1 = (String) node1.getUserObject();
if (userObject1.equals("红色")) {
// 切换面板背景1
paintColor = 1;
this.repaint();
} else if (userObject1.equals("蓝色")) {
// 切换面板背景2
paintColor = 2;
this.repaint();
}
}
}
}