下載了個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
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乐都县| 河曲县| 北流市| 克东县| 鸡西市| 金溪县| 保定市| 合山市| 微博| 濉溪县| 涟水县| 神农架林区| 松桃| 汕头市| 佛山市| 荆门市| 孝昌县| 惠来县| 海口市| 淅川县| 黎川县| 丰台区| 鲁甸县| 儋州市| 阿城市| 高阳县| 普定县| 寿宁县| 手游| 砚山县| 抚远县| 陆良县| 霍林郭勒市| 大城县| 莱芜市| 大姚县| 太保市| 开鲁县| 松阳县| 潮安县| 阳江市|