1. 设计一个资源管理编辑器,有二层节点结构,第一层内容有我的公文包、我的电脑、收藏夹。第二层对应第一层有(公司文件、个人信件、私人文件)、(本机磁盘(C:)、"本机磁盘(D:)、本机磁盘(E:))、(新浪、网易、搜狐)。当点击第二层的节点时,在右边的文本框中可以显示和编辑文本。
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图形(喜欢)。
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();
}
}