資源描述:
《java Swing基礎(chǔ)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第13章Swing基礎(chǔ)13.1Swing基礎(chǔ)13.2Swing典型組件13.1Swing基礎(chǔ)Java技術(shù)支持圖形用戶界面GUI程序設(shè)計(jì),在JDK中也提供了豐富的GUI設(shè)計(jì)相關(guān)的API,主要分為AWT和Swing兩大系列,兩者間存在緊密聯(lián)系而非完全獨(dú)立,其運(yùn)行原理(事件處理機(jī)制)是完全相同的。13.1Swing基礎(chǔ)AWT(AbstractWindowToolkit)是JDK的一個(gè)子集,其中提供了大量用于創(chuàng)建用戶界面和繪制圖形圖像的類和接口,AWT中的組件均是重量組件。重量組件通過委托對(duì)等組件來完成具體工作,如組件的繪制和事件響應(yīng)等,其缺陷是開銷
2、大、效率低,并且受到底層平臺(tái)對(duì)等組件的限制,具有嚴(yán)重平臺(tái)相關(guān)性。13.1Swing基礎(chǔ)Swing是AWT的擴(kuò)展,它提供了更強(qiáng)大和更靈活的組件集合,Swing組件是純Java代碼開發(fā)的,除了幾個(gè)頂層容器(JFrame,JDialog,JApplet)是重量組件外,其余均為輕量組件。輕量組件是通過Java繪圖技術(shù)在其容器內(nèi)繪制出來的,其組件的繪制和事件響應(yīng)的開銷要小很多,在不同平臺(tái)上表現(xiàn)一致,具有平臺(tái)無關(guān)性,同時(shí)提高了程序運(yùn)行效率。JFrameFrameObjectComponentContainerWindowDialogJDialogJTex
3、tJComboBoxJLabelJListJMenuBarJOptionPaneJPanelJScrollBarAbstractButtonJToggleButtonJMenuItemJButtonJCheckBoxJRadioButtonJComponentJMenuSwing的層次結(jié)構(gòu)13.1Swing基礎(chǔ)Swing中的可視化組件均以J字母開頭,其可以分為容器類組件和非容器類組件兩大類。Swing容器類組件有兩種:頂級(jí)容器:JFrame,JDialog,JApplet中間容器:JPanel,JScrollPaneJTabbedPane,J
4、ToolBar……13.1Swing基礎(chǔ)Swing非容器類組件有:JButton,JLabel,JTextField,JTextArea,JCheckBox,JRadioButtonJList,JComboBox,JMenuItem……13.1Swing基礎(chǔ)JButtonJLabelJTextFieldJTable中間容器(JPanel)內(nèi)容窗格(contentPane)頂級(jí)容器(JFrame等)Swing組件的包含關(guān)系13.2Swing典型組件JFrame框架窗口類,是放置其他Swing組件的頂級(jí)容器。構(gòu)造函數(shù):JFrame()JFrame
5、(StringTitle)【例題13-1】JFrame演示publicclassJFrameDemo{publicstaticvoidmain(String[]args){JFrameframe=newJFrame("JFrame演示");JLabellabel=newJLabel("我是JLabel");JButtonbutton=newJButton("我是JButton");13.2Swing典型組件frame.getContentPane().setLayout(newFlowLayout());frame.getContentPan
6、e().add(label);frame.getContentPane().add(button);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,200);frame.setLocation(500,300);frame.setVisible(true);}}【例題13-2】JFrame演示(不使用ContentPane)publicclassJFrameDemoNoContentPane{publicstaticvoidmain(String[]
7、args){JFrameframe=newJFrame("JFrame演示");JLabellabel=newJLabel("我是JLabel");JButtonbutton=newJButton("我是JButton");13.2Swing典型組件frame.setLayout(newFlowLayout());frame.add(label);frame.add(button);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,200);frame
8、.setLocation(500,300);frame.setVisible(true);}}13.2Swing典型組件JLabel標(biāo)簽類,既可以顯示文本也可以顯示