下載了個Vim,想把它掌握,沒想到卡在編譯這一塊了。

          Chapter 11 Getting Started With GUI Programming
          1. GUI 組件
          JButton JLabel JTextField JCheckBox JRadioButton JComboBox 都屬于Swing組件,大多數swing組件通過java代碼直接在畫板上作圖,獨立于運行平臺,稱為輕量級(lightweight)組件;而其它swing組件(一般是java.awt.Window和java.awt.Panel的子類),必須通過在特定的平臺使用本地的GUI,稱為重量級(heavyweight)組件。

          2. 容器 Container 類
          容器用于放置各種組件。Window Panel Applet Frame Dialog 都是AWT的容器類,Swing組件有Component Container JFrame JDialog JApplet JDialog
          3. GUI Helper類
          用來描述GUI組件的屬性,如Graphics Color Font FontMetrics Dimension LayoutManager
          java.awt包中沒有helper類
          4. 窗口
          (1)JFrame 類
          常用方法
          JFrame()
          JFrame(String title)
          setSize(int, int)
          setVisible(boolean) (默認為不可見)
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) (否則關閉窗口后程序并不停止)
          (2)加入、移除組件
          用frame.getContentPane()獲得窗口的container
          container.add(Component) 加入組件
          container.remove(Component) 移除組件
          (3)使窗口居中
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          int screenWidth = screenSize.width;
          int screenHeight = screenSize.height;
          然后即可計算窗口左上角點的坐標,使用setLocation(int, int)設置位置
          5. Layout 版面管理
          很多其他窗口系統中,用戶界面組件通常是通過坐標絕對定位的,僅此一般只能在固定的平臺中運行,而Java的版面管理可以在所有窗口系統中自動排版。
          開發界面時比較好的一個風格:創建一個繼承JFrame的類,main方法創建該類的實例并設置具體屬性。
          三個基本的layout manager:
          (1)FlowLayout
          container.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));
          從左到右逐個放入組件,一行放滿了就放下一行,可以通過三種方式對齊組件,可以以象素為單位調整組件間距。
          組件的大小是固定的,窗口不夠大的話就看不到了。
          (2)GridLayout
          public GridLayout(int rows, int columns, int hGap, int vGap)
          public GridLayout(int rows, int columns)
          public GridLayout()
          把組件放入一個n*m的方陣,每個組件的大小根據窗口大小縮放。其中rows或columns之一可以為0(不能都為0),為0的那一個在運行時由layout manager根據組件數動態決定。而如果rows和columns都非0,則columns被忽略,在運行時由layout manager動態決定。
          (3)BorderLayout
          public BorderLayout(int hGap, int vGap)
          public BorderLayout()
          把窗口分為上下左右中五塊區域,其中上下塊可以左右延伸,左右塊可以上下延伸,中間的可以任意延伸。
          加入組件:
          container.add(new JButton("East"), BorderLayout.EAST);
          container.add(new JButton("South"), BorderLayout.SOUTH);
          container.add(new JButton("North"), BorderLayout.NORTH);
          container.add(new JButton("West"), BorderLayout.WEST);
          container.add(new JButton("Center"), BorderLayout.CENTER);
          其中最后一句(中間位置)也可以簡寫成container.add(new JButton("Center"));
          如果加入了多個組件,則僅顯示最后一個,而且remove最后一個后就無組件顯示了。

          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.4 Java notes

          Posted on 2007-04-22 20:23 ZelluX 閱讀(118) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-04 21:02:51
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 屏东市| 沈阳市| 恩施市| 涞源县| 迁西县| 绥江县| 明溪县| 罗定市| 樟树市| 娱乐| 慈溪市| 陆川县| 旬邑县| 双柏县| 延长县| 云南省| 通海县| 陆川县| 宜阳县| 方正县| 东乌珠穆沁旗| 鲁山县| 武平县| 东乡| 万全县| 凯里市| 无为县| 体育| 镇平县| 梅河口市| 阜平县| 渝中区| 桐乡市| 涟源市| 阿拉善盟| 修水县| 柘荣县| 永仁县| 玛曲县| 鄂托克前旗| 公安县|