[ java ] in KIDS 글 쓴 이(By): iknowyou (Coffeeman) 날 짜 (Date): 1999년 6월 24일 목요일 오후 10시 34분 29초 제 목(Title): Re: Swing에서 JTree 써보신분께 질문.. 다음 코드를 보고 실행 시켜 보시면 쉽게 이해가 가실 것입니다. JBuilder를 이용해서 만든 것입니다. ------------Frame1.java-------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class Frame1 extends JFrame { JLabel statusBar = new JLabel(); BorderLayout borderLayout1 = new BorderLayout(); JTree jTree1 = new JTree(); JPopupMenu jPopupMenu1 = new JPopupMenu(); JMenuItem jMenuItem1 = new JMenuItem(); JMenuItem jMenuItem2 = new JMenuItem(); //Construct the frame public Frame1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { this.getContentPane().setLayout(borderLayout1); this.setSize(new Dimension(541, 404)); this.setTitle("Frame Title"); statusBar.setText(" "); jMenuItem1.setText("Insert"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem1_actionPerformed(e); } }); jMenuItem2.setText("Delete"); jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem2_actionPerformed(e); } }); jTree1.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { jTree1_mousePressed(e); } }); this.getContentPane().add(statusBar, BorderLayout.SOUTH); this.getContentPane().add(jTree1, BorderLayout.CENTER); jPopupMenu1.add(jMenuItem1); jPopupMenu1.addSeparator(); jPopupMenu1.add(jMenuItem2); } void jMenuItem1_actionPerformed(ActionEvent e) { DefaultMutableTreeNode parNode = null; DefaultMutableTreeNode newNode = null; DefaultTreeModel model = null; try { parNode = (DefaultMutableTreeNode) jTree1.getSelectionModel().getSelectionPath().getLastPathComponent(); newNode = new DefaultMutableTreeNode("Inserted"); model = (DefaultTreeModel)jTree1.getModel(); if (parNode == null || newNode == null || model == null ) return; model.insertNodeInto(newNode, parNode, parNode.getChildCount()); } catch(Exception ex) { JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR);; return; } } void jMenuItem2_actionPerformed(ActionEvent e) { DefaultMutableTreeNode curNode = null; DefaultTreeModel model = null; try { curNode = (DefaultMutableTreeNode) jTree1.getSelectionModel().getSelectionPath().getLastPathComponent(); model = (DefaultTreeModel)jTree1.getModel(); if (curNode == null || model == null ) return; model.removeNodeFromParent(curNode); } catch(Exception ex) { JOptionPane.showMessageDialog(this, "Error"); return; } } void jTree1_mousePressed(MouseEvent e) { if (e.isMetaDown() == false ) return; if (jTree1.getSelectionModel().getSelectionPath() == null ) return; jPopupMenu1.show(jTree1, e.getX(), e.getY()); } } ------------------------------------------------------------------------------ class Life extends Object implements Dynamic { Life(Life father, Life mother){} responseToThis(Life this){} responseToOthers(Life others){} } |