天天看點

Java 程式設計練習題(四)

 1. 設計一個資源管理編輯器,有二層節點結構,第一層内容有我的公文包、我的電腦、收藏夾。第二層對應第一層有(公司檔案、個人信件、私人檔案)、(本機磁盤(C:)、"本機磁盤(D:)、本機磁盤(E:))、(新浪、網易、搜狐)。當點選第二層的節點時,在右邊的文本框中可以顯示和編輯文本。

Java 程式設計練習題(四)

import java.awt.*;

 import java.awt.event.*;

 import javax.swing.*;

 import javax.swing.tree.*;

 import javax.swing.event.*;

 public class Eg_1 extends JFrame implements TreeSelectionListener{

    JTextArea text=new JTextArea(20,20);

    JTree tree=null;

    public Eg_1() {

       Container contentPane = getContentPane(); //建立内容面闆執行個體

       DefaultMutableTreeNode root = new DefaultMutableTreeNode("資料總管");

                  //12-14行,建立樹的四個節點,16行将這四個節點加到根節點上。

       DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("我的公文包");

       DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的電腦");

       DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("收藏夾");

       DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");

        root.add(node1);root.add(node2);root.add(node3);root.add(node4);

       DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("公司檔案");

        node1.add(leafnode);     //17-36行為三個節點加入子節點

        leafnode = new DefaultMutableTreeNode("個人信件");

        node1.add(leafnode);

        leafnode = new DefaultMutableTreeNode("私人檔案");

        node1.add(leafnode);

        leafnode = new DefaultMutableTreeNode("本機磁盤(C:)");

        node2.add(leafnode);

        leafnode = new DefaultMutableTreeNode("本機磁盤(D:)");

        node2.add(leafnode);

        leafnode = new DefaultMutableTreeNode("本機磁盤(E:)");

        node2.add(leafnode);

        DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("網站清單");

        node3.add(node31);

        leafnode = new DefaultMutableTreeNode("新浪");

        node31.add(leafnode);

        leafnode = new DefaultMutableTreeNode("網易");

        node31.add(leafnode);

        leafnode = new DefaultMutableTreeNode("搜狐");

        node31.add(leafnode);

        tree = new JTree(root);  //執行個體化Tree的對象。

       JScrollPane scrollpane = new JScrollPane(text);//有滾動條的的文本區

       JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,

                                            true,tree,scrollpane);

       tree.addTreeSelectionListener(this);//給tree安裝螢幕,

       contentPane.add(splitpane); //将splitpane加到内容面闆上

       pack();

       setVisible(true);setBounds(70,80,200,300);

       addWindowListener(new WindowAdapter() {

           public void windowClosing(WindowEvent e) {

               System.exit(0);

           }

       });

    }

    public void valueChanged(TreeSelectionEvent e){ //TreeSelectionListener的方法

        if(e.getSource()==tree)   {

            DefaultMutableTreeNode   node=

                     (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();

            // 用getLastSelectedPathComponent擷取選中的節點建立執行個體node。

            if(node.isLeaf())   {

                String str=node.toString();

                if(str.equals("公司檔案"))   {

                    text.setText(str+":這是公司的檔案!");

                }

                else if(str.equals("個人信件"))  {

                    text.setText(str+":這是個人往來的信件!");

                }

                else if(str.equals("私人檔案"))   {

                    text.setText(str+":這是私人信件!");

                }

                else if(str.equals("本機磁盤(C:)"))  {

                    text.setText(str+":磁盤内容如下");

                }

                else if(str.equals("本機磁盤(D:)"))   {

                    text.setText(str+":這是D盤内容!");

                }

                else if(str.equals("本機磁盤(E:)"))  {

                    text.setText(str+":這是E盤内容!");

                }

                else if(str.equals("奇摩站"))   {

                    text.setText(str+":這是奇摩站的位址www.qimo.com !");

                }

                else if(str.equals("職棒消息"))  {

                    text.setText(str+":這是職棒消息站的位址www.zb.com !");

                }  

                else if(str.equals("網絡書店")) {

                    text.setText(str+":這是網絡書店站的位址www.yad.com !");

                } 

            }

            else  {            

                text.setText(node.getUserObject().toString()); 

            }

        }

    }

    public static void main(String args[]) {

        new Eg_1();

    }

}

2. 設計一市場調查問卷程式,其中一項是調查使用者在給出的幾家電子生産廠家中最喜歡哪幾家,所喜歡的産品有那幾類?在使用者圖形界面視窗中要求提供五個企業的名字選擇按鈕(在一行上),名字分别是:“長虹”、“海爾”、“LG”、“三星”、“創維”。産品類型有:電視機、DVD、數位相機、空調,并用四個帶有圖形選擇框(放在一列上)來進行選擇,沒選之前的圖形是x.jpg(不喜歡)。當用滑鼠點選圖形複選框時,圖形将顯示是的r.jpg圖形(喜歡)。

Java 程式設計練習題(四)

import java.awt.*;

 import java.awt.event.*;

 import javax.swing.*;

 public class Eg_2 implements ItemListener{

      //                                                選項監聽?接口

      JFrame  f;

      JCheckBox  c1,c2,c3;

    public  Eg_2(){

           f=new JFrame();

           Container  con=f.getContentPane();

           con.setLayout(new BorderLayout());

           JPanel  p1=new JPanel(new GridLayout(1,3));

           p1.setBorder(BorderFactory.createTitledBorder("請選擇你喜歡的圖檔"));

           c1=new JCheckBox("pci1",new ImageIcon("x1.jpg"));

           c2=new JCheckBox("pci2",new ImageIcon("x1.jpg"));

           c3=new JCheckBox("pci3",new ImageIcon("x1.jpg"));

           c1.addItemListener(this);

           c2.addItemListener(this);

           c3.addItemListener(this);

           p1.add(c1);

           p1.add(c2);

           p1.add(c3);

           con.add(p1,BorderLayout.NORTH);

           f.setSize(400,300);

           f.setVisible(true);       

    } 

    //ItemListener接口中的方法:

    //選擇或取消複選框時執行該方法         

    public void itemStateChanged(ItemEvent e){

           //               選項狀态改變方法             

           if(e.getStateChange()==e.SELECTED){//選擇

                  if(e.getSource()==c1){

                         c1.setIcon(new ImageIcon("x.jpg"));

                  }

           }

           else{//取消選擇 

                  if(e.getSource()==c1){

                         c1.setIcon(new ImageIcon("x1.jpg"));

                  }

           }

    }

    public static void main(String args[]) {

        new Eg_2();

    }

}