摘 要 在Java語(yǔ)言的學(xué)習(xí)中,初學(xué)者為了進(jìn)一步提高的編程能力,對(duì)窗口的設(shè)計(jì)與編程是必經(jīng)之路。首先我們需要熟悉awt類和swing類的基本屬性和方法,方便我們?cè)诰帉懗绦驎r(shí)候合理調(diào)用。熟悉implements接口和類繼承調(diào)用。
關(guān)鍵詞 Java 窗口 多功能 Java布局
一、對(duì)布局的理解
窗口布局的整體構(gòu)造分為三個(gè)部分,最上面是顯示導(dǎo)航條,下面分為左右兩部分場(chǎng)景。左邊是列表樹,顯示電腦內(nèi)容;右邊可以是按鈕框,可以顯示圖片等。只要了解每個(gè)類和布局的方法,就很方便控制控件在面板上的位置,從而編程人員可以靈活修改和添加布置控件。這里包含用于創(chuàng)建用戶界面和繪制圖形圖像的所有分類。在 AWT 術(shù)語(yǔ)中,諸如按鈕或滾動(dòng)條之類的用戶界面對(duì)象稱為組件。
對(duì)于java.swing這個(gè)類包比java.awt提供了更為優(yōu)化的用戶界面,完全取代當(dāng)然說(shuō)不上。不同的方法總會(huì)有不同的應(yīng)用。AWT的界面是通過(guò)調(diào)用當(dāng)前系統(tǒng)的界面元素來(lái)實(shí)現(xiàn)的,他的樣子完全依賴于系統(tǒng)。而Swing,是后來(lái)被重新使用java編寫的。他是完全使用java做出來(lái)的,不依賴任何操作系統(tǒng)。所以可以達(dá)成同一程序,在不同操作系統(tǒng)中界面的同一。避免了awt更換運(yùn)行的操作系統(tǒng)后布局、顏色、框架的混亂。而且swing增加了很多新功能新方法,使編程人員能更好的繪制界面。
二、具體實(shí)現(xiàn)方法與代碼
首先我們需要寫一個(gè)公共類MyFrame繼承JFrame并且添加接口ActionListener,KeyListener,WindowListener,MouseListener。再私有定義private JScrollPane scrollTree,scrollPane和定義文件根節(jié)點(diǎn)private FileNode dirTreeRoot = new FileNode(new File(\"我的電腦\"))。這時(shí)候我們可以聲明一顆“樹”JTree dirTree = new JTree(dirTreeRoot),這就創(chuàng)建一個(gè)更節(jié)點(diǎn)new DefaultTreeModel(dirTreeRoot)了。文本框用來(lái)記錄或者輸入文件路徑private JTextField pathField = new JTextField(\"請(qǐng)輸入文件路徑\")。
之后就可以定義導(dǎo)航,按鈕等JMenuBar menuBar;JMenu fileMenu;JMenuItem playItem,Help,jxAbout和JMenuItem openItem,cleanItem,exitItem;添加文件是File[] selectedFiles = 1;File singeFiles = 1;這樣就可以雙擊添加當(dāng)文件了,如果要對(duì)文件做一個(gè)篩選那么可以考慮用JFileChooser chooser文件選擇器。利用方法setSize(長(zhǎng),寬)設(shè)置窗體的大小,把長(zhǎng)寬改成相應(yīng)的數(shù)字。這里的數(shù)字是不能大于分辨率的。如果你想在控件上添加圖形只需要new ImageIcon(\"./Image/名字.gif\"),如果你想設(shè)置左上角的圖標(biāo),只需要setIconImage(pi.getImage())就可以了。另外你想讓窗口居中的話我們查閱API文檔,就可以找到this.setLocationRelativeTo(1),setResizable(true)是設(shè)置最大化是否可用。這里再依次調(diào)用add()添加進(jìn)去,菜單欄中加入按鈕控件,最后把只需要getContentPane().add(contentPane)就完成了填充面板。最后我們需要完成邊界布局contentPane.setLayout(new BorderLayout()),在布局中有東南西北中五個(gè)方位,第二個(gè)參數(shù)就是指定方位了,比如下:
contentPane.add(pathField, BorderLayout.NORTH);
contentPane.add(scrollTree,BorderLayout.WEST);
contentPane.add(scrollPane,BorderLayout.CENTER);
在布局中,我們需要理解控件之間層次的關(guān)系,哪些控件是添加到哪一層面板中,哪些面板元素又是在窗口的哪一個(gè)部分,java中需要的布局,有按照順序的流線排序,也有東南西北的位置布局。
參考文獻(xiàn):
[1]賀慧琳.《Java程序設(shè)計(jì)》實(shí)驗(yàn)教學(xué)改革探討[J]. 福建電腦, 2011(02).
[2]朱小英.Java實(shí)驗(yàn)教學(xué)改革[J]. 考試周刊, 2008(13).
[3]孟宇橋.關(guān)于JAVA語(yǔ)言課程的教學(xué)方法研究[J]. 電腦知識(shí)與技術(shù), 2008(36).
[4]鄭宇,吳悅,沈云付,辛明軍.“Java語(yǔ)言程序設(shè)計(jì)”課程教學(xué)改革和探索[J]. 計(jì)算機(jī)教育, 2008(08).
[5]黎海生.關(guān)于java課程設(shè)計(jì)的思考[J]. 現(xiàn)代企業(yè)教育, 2006(09).