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();

    }

}