Java SE實驗報告_第1頁
Java SE實驗報告_第2頁
Java SE實驗報告_第3頁
Java SE實驗報告_第4頁
Java SE實驗報告_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實驗四:Swing高級控件使用班級:姓名: 學(xué)號:實驗?zāi)康模和ㄟ^工具欄、菜單等高級控件的使用,掌握Java中GUI程序設(shè)計的方法。實驗內(nèi)容:工具欄的使用;菜單的使用;通用對話框的使用;JTree的使用。實驗步驟:1. 實驗步驟01. 學(xué)習(xí)工具欄的使用02. 學(xué)習(xí)菜單的使用03. 學(xué)習(xí)對話框的使用04. 學(xué)習(xí)JTree的使用2. 實驗源代碼01. 工具欄實驗源代碼import javax.swing.*;import java.awt.*;public class ToolBarDemo extends JFrame private JPanel p;/聲明工具欄private JToolBar

2、 toolBar;private JButton btnCopy,btnPost,btnCut;public ToolBarDemo() super(工具欄);p = new JPanel();/創(chuàng)建工具欄toolBar=new JToolBar();/將工具欄對象添加到窗體的上方(北面)this.add(toolBar,BorderLayout.NORTH);/創(chuàng)建按鈕對象,按鈕上有圖片btnCopy=new JButton(new ImageIcon(E:1.gif);btnPost=new JButton(new ImageIcon(E:2.gif);btnCut=new JButton

3、(new ImageIcon(E:3.gif);/設(shè)置按鈕的工具提示文本btnCopy.setToolTipText(復(fù)制);btnPost.setToolTipText(粘貼);btnCut.setToolTipText(剪切);/將按鈕添加到工具欄中toolBar.add(btnCopy);toolBar.add(btnPost);toolBar.add(btnCut);this.add(p);this.setSize(200, 150);this.setLocation(100, 100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS

4、E);public static void main(String args) ToolBarDemo f = new ToolBarDemo();f.setVisible(true); 實驗代碼分析實驗定義一個JtoolBar變量,3個Jbutton變量,對三個JButton變量分別賦予剪切、復(fù)制、粘貼。其中JButton通過setToolTipText()方法添加了按鈕提示內(nèi)容。實驗運行結(jié)果02. 菜單實驗源代碼import javax.swing.*;public class MenuDemo extends JFrame private JPanel p;/ 聲明菜單欄private

5、JMenuBar menuBar;/ 聲明菜單private JMenu menuFile, menuEdit, menuHelp, menuNew;/ 聲明菜單選項private JMenuItem miSave, miExit, miCopy, miPost, miAbout, miC, miJava,miEmpty;public MenuDemo() super(菜單);p = new JPanel();/ 創(chuàng)建菜單欄對象menuBar = new JMenuBar();/ 將菜單欄設(shè)置到窗體中this.setJMenuBar(menuBar);/ 創(chuàng)建菜單menuFile = new

6、JMenu(文件);menuEdit = new JMenu(編輯);menuHelp = new JMenu(幫助);menuNew = new JMenu(新建);/ 將菜單添加到菜單欄menuBar.add(menuFile);menuBar.add(menuEdit);menuBar.add(menuHelp);/ 將新建菜單添加到文件菜單中menuFile.add(menuNew);/ 在菜單中添加分隔線menuFile.addSeparator();/ 創(chuàng)建菜單選項miSave = new JMenuItem(保存);miExit = new JMenuItem(推出);miCop

7、y = new JMenuItem(復(fù)制);miPost = new JMenuItem(粘貼);miAbout = new JMenuItem(關(guān)于);miC = new JMenuItem(C+);miJava = new JMenuItem(JAVA);miEmpty = new JMenuItem(空白文檔);/ 將菜單項添加到菜單中menuFile.add(miSave);menuFile.add(miExit);menuEdit.add(miCopy);menuEdit.add(miPost);menuHelp.add(miAbout);menuNew.add(miC);menuN

8、ew.add(miJava);menuNew.add(miEmpty);this.add(p);this.setSize(300, 250);this.setLocation(100, 100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void main(String args) MenuDemo f = new MenuDemo();f.setVisible(true);實驗代碼分析實驗中分別聲明了一個JmenuBar、若干個Jmenu、若干個JmenuItem,把相應(yīng)的菜單項(JmenuItem)添

9、加到對應(yīng)的菜單(Jmenu)中,再把菜單添加到菜單欄(JmenuBar)中,實現(xiàn)原理相對簡單,易于實現(xiàn)。菜單欄對象可以通過JFrame類的setJMenuBar()方法將其添加到框架的頂部。語句如下:Frame.setJMenuBar(menuBar);實驗運行結(jié)果03. 對話框?qū)嶒炘创aimport javax.swing.*;import java.awt.event.*;import java.awt.*;public class DialogDemo extends JFrame implements ActionListener private JMenuBar menuBar;pr

10、ivate JMenu menuManage;private JMenuItem miAddUser;/ 聲明一個滾動面板private JScrollPane sp;private JTextArea txtContent;/ 聲明對話框private UserDialog userDialog;public DialogDemo() super(對話框);menuBar = new JMenuBar();this.setJMenuBar(menuBar);menuManage = new JMenu(用戶管理);menuBar.add(menuManage);miAddUser = new

11、 JMenuItem(添加新用戶);menuManage.add(miAddUser);/ 注冊監(jiān)聽miAddUser.addActionListener(this);txtContent = new JTextArea(20, 30);/ 實例化一個滾動面板,置入文本域sp = new JScrollPane(txtContent);/ 將滾動面板添加到窗體中this.add(sp);this.setSize(300, 200);this.setLocation(100, 100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 重

12、寫事件處理方法public void actionPerformed(ActionEvent e) / 判斷是否實例化對話框if (userDialog = null) userDialog = new UserDialog(this);/ 顯示對話框userDialog.setVisible(true);public static void main(String args) DialogDemo f = new DialogDemo();f.setVisible(true);/ 創(chuàng)建一個對話框類class UserDialog extends JDialog implements Acti

13、onListener JPanel p;JLabel lblName, lblPwd, lblType;JTextField txtName;JPasswordField txtPwd;JComboBox cmbType;JButton btnOK, btnCancle;public UserDialog(JFrame f) super(f, 添加新用戶, true);p = new JPanel(new GridLayout(4, 2);lblName = new JLabel(用戶名);lblPwd = new JLabel(密碼);lblType = new JLabel(類型);txt

14、Name = new JTextField(10);txtPwd = new JPasswordField(10);String str = 普通用戶, VIP用戶, 管理員 ;cmbType = new JComboBox(str);btnOK = new JButton(確定);btnCancle = new JButton(取消);/ 注冊監(jiān)聽btnOK.addActionListener(this);btnCancle.addActionListener(this);p.add(lblName);p.add(txtName);p.add(lblPwd);p.add(txtPwd);p.

15、add(lblType);p.add(cmbType);p.add(btnOK);p.add(btnCancle);this.add(p);/ 設(shè)置合適的大小this.pack();/ 重寫事件處理方法public void actionPerformed(ActionEvent e) / 點擊確定按鈕時if (e.getSource() = btnOK) / 獲取用戶名文本欄的信息String strName = txtName.getText();/ 獲取密碼欄中的信息String strPwd = new String(txtPwd.getPassword();/ 驗證if (strNa

16、me.equals() JOptionPane.showMessageDialog(btnOK, 用戶名不能為空!);return;if (strPwd.equals() JOptionPane.showMessageDialog(btnOK, 密碼不能為空!);return;if (strPwd.length() 10) JOptionPane.showMessageDialog(btnOK, 密碼長度應(yīng)在610之間!);return;/ 以追加的方式在文本域中顯現(xiàn)信息txtContent.append(用戶名: + strName + n);txtContent.append(密碼: +

17、strPwd + n);txtContent.append(類型: + cmbType.getSelectedItem().toString()+ nn);/隱藏this.setVisible(false);/ 點擊取消按鈕時if (e.getSource() = btnCancle) / 清空文本欄txtName.setText();txtPwd.setText();/ 隱藏this.setVisible(false);實驗代碼分析對話框的實現(xiàn)部分相對有意思,因為其間夾雜了動態(tài)彈出框等元素。程序中編寫的UserDialog類繼承了JDialog類實現(xiàn)了ActionListener接口。程序通

18、過UserDialog(JFrame f)構(gòu)造函數(shù)實現(xiàn)在JFrame操作中彈出對應(yīng)的Jdialog,actionPerformed()方法實現(xiàn)對動作的監(jiān)聽,通過getSource()方法獲取對象,從而進行比較。實驗運行結(jié)果04. JTree實驗源代碼import java.awt.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.tree.*;public class TreeDemo extends JFrame implements TreeSelectionListener private Defau

19、ltMutableTreeNode root;private DefaultTreeModel model;private JTree tree;private JTextArea textArea;private JPanel p;public TreeDemo() super(TreeBrowserTest);/ 實例化樹的根節(jié)點root = makeSampleTree();/ 實例化的樹模型model = new DefaultTreeModel(root);/ 實例化一棵樹tree = new JTree(model);/ 注冊樹的監(jiān)聽對象,監(jiān)聽選擇不同的樹節(jié)點tree.addTre

20、eSelectionListener(this);/ 設(shè)置樹的選擇模式是單一節(jié)點的選擇模式(一次只能選中一個節(jié)點)tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);/ 實例化一個面板對象,布局是1行2列p = new JPanel(new GridLayout(1, 2);/ 在面板的左側(cè)放置樹p.add(new JScrollPane(tree);textArea = new JTextArea();/ 面板右側(cè)放置文本域p.add(new JScrollPane(textA

21、rea);this.add(p);this.setSize(400, 300);this.setLocation(100, 100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 創(chuàng)建一棵樹對象的方法public DefaultMutableTreeNode makeSampleTree() / 實例化樹節(jié)點,并將節(jié)點添加到相應(yīng)節(jié)點中DefaultMutableTreeNode root = new DefaultMutableTreeNode(世界);DefaultMutableTreeNode country = new Def

22、aultMutableTreeNode(中國);root.add(country);DefaultMutableTreeNode state = new DefaultMutableTreeNode(山東);country.add(state);DefaultMutableTreeNode city = new DefaultMutableTreeNode(青島);state.add(city);city = new DefaultMutableTreeNode(濟南);state.add(city);state = new DefaultMutableTreeNode(江蘇);country.add(state);city = new DefaultMutableTreeNode(南京);state.add(city);return root;/ 重寫 樹的選擇事件處理方法public void valueChanged(TreeSelectionEvent event) / 獲取選中節(jié)點的路徑TreePath path = tree.getSelectionPath();if (path = null)return;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論