📄 tree1.java
字号:
package english;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.sql.ResultSet;
import java.sql.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
public class Tree1 extends JPanel {
DefaultMutableTreeNode root;
DefaultMutableTreeNode node1;
DefaultMutableTreeNode node2;
DefaultMutableTreeNode child;
DefaultTreeModel model;
BorderLayout borderLayout1 = new BorderLayout();
JTree jTree1 = new JTree();
JScrollPane jScrollPane1;
Texts jpanel = new Texts(root);
JPopupMenu jPopupMenu1 = new JPopupMenu();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
public Tree1(Texts jpanel) {
try {
this.jpanel = jpanel;
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
jTree1 = new JTree(this.gettreemodel());
jScrollPane1 = new JScrollPane(jTree1);
this.setLayout(borderLayout1);
this.setPreferredSize(new Dimension(100, 290));
jTree1.addTreeSelectionListener(new Tree1_jTree1_treeSelectionAdapter(this));
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_AS_NEEDED);
jMenuItem1.setMnemonic('D');
jMenuItem1.setText("删除(D)");
jMenuItem2.setText("移动到日常口语(M)");
this.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTree1);
jPopupMenu1.add(jMenuItem1);
jPopupMenu1.add(jMenuItem2);
}
public DefaultTreeModel gettreemodel(){
root = new DefaultMutableTreeNode(" 对话练习");
node1 = new DefaultMutableTreeNode("日常口语");
node2 = new DefaultMutableTreeNode("复杂口语");
model = new DefaultTreeModel(root);
model.insertNodeInto(node1, root, root.getChildCount());
model.insertNodeInto(node2, root, root.getChildCount());
try {
Database db = new Database();
ResultSet rs = db.query("select * from spokenlanguage order by name");
while (rs.next()) {
if(rs.getString(3).equals("simple")){
child = new DefaultMutableTreeNode(rs.getString(1));
model.insertNodeInto(child, node1, node1.getChildCount());
} else {
child = new DefaultMutableTreeNode(rs.getString(1));
model.insertNodeInto(child, node2, node2.getChildCount());
}
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return model;
}
public void jTree1_valueChanged(TreeSelectionEvent e) {
String path = (String)e.getPath().toString();
path = path.substring(path.lastIndexOf(",")+1,path.length()-1).trim();
try {
Database db = new Database();
ResultSet rs = db.query("select * from spokenlanguage where name = '"+path+"'");
if(rs.next()){
jpanel.jTextArea2.setText(rs.getString(2));
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public void repainttree(){
jScrollPane1.remove(jTree1);
jTree1 = new JTree(this.gettreemodel());
jTree1.addTreeSelectionListener(new Tree1_jTree1_treeSelectionAdapter(this));
jScrollPane1.getViewport().add(jTree1);
}
// public void jTree1_mouseClicked(MouseEvent e) {
// String path = jTree1.getSelectionPath().toString();
// if(path==null||path.equals("")||path.endsWith("对话联系")
// ||path.endsWith("日常口语")||path.endsWith("复杂口语")){
// return;
// }
// if(e.getButton() == e.BUTTON3){
// System.out.println("右击!");
// jPopupMenu1.show(this,e.getX(),e.getY());
// }
// }
}
class Tree1_jTree1_treeSelectionAdapter implements TreeSelectionListener {
private Tree1 adaptee;
Tree1_jTree1_treeSelectionAdapter(Tree1 adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(TreeSelectionEvent e) {
adaptee.jTree1_valueChanged(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -