java

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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){}        }
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.