1. 設計一個資源管理編輯器,有二層節點結構,第一層内容有我的公文包、我的電腦、收藏夾。第二層對應第一層有(公司檔案、個人信件、私人檔案)、(本機磁盤(C:)、"本機磁盤(D:)、本機磁盤(E:))、(新浪、網易、搜狐)。當點選第二層的節點時,在右邊的文本框中可以顯示和編輯文本。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmL4QmNxAzMlljNxETYtQWMklTLyQzYz0iM0MWOtUGMwQDNkVmMvwFNzUDM1QzLcRnbl1GajFGd0F2LcRWYvxGc19CXt92YuUWelRXauwGZvw1LcpDc0RHaiojIsJye.gif)
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();
}
}