下載了個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 閱讀(116) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-04 21:02:51
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 克什克腾旗| 屏山县| 吉安县| 双鸭山市| 镇远县| 长兴县| 阳谷县| 阳山县| 清流县| 阿拉善盟| 巴塘县| 沐川县| 龙泉市| 托里县| 凌云县| 舞钢市| 中超| 邵东县| 呼伦贝尔市| 札达县| 夏邑县| 阿坝| 沙洋县| 岐山县| 任丘市| 义马市| 揭东县| 洛川县| 拜城县| 灵石县| 介休市| 滨海县| 赣榆县| 肇源县| 呼玛县| 宝山区| 吕梁市| 德昌县| 株洲县| 明光市| 哈巴河县|