java GUI

          12.25!~12.27
          GUI
          1 容器,部件
          2 事件處理

          awt和swing的特點:
          awt(抽象窗口工具集)是依賴操作系統的GUI.
          能夠顯示出來的組件是不同操作系統的共有組件.(但是不太好看.)
          swing(模擬GUI組件)速度比awt要慢的多.
          swt(sun公司的,是swing和awt的綜合體)如果swt產生的組件awt有就直接調用, 沒有就模擬出來.這樣既解決了跨平臺的問題,也解決了速度慢的問題.


          低層容器:容器是包含其他組件的組件.
          JFrame,JApplet,JDialog.?

          布局管理器:
          標準布局,自由布局.

          GUI三個步驟:
          1.選擇容器
          2.為容器設置布局方式
          3.為容器填加組件

          導入3個包
          import javax.swing.*;
          import java.awt.*;
          import awt.event.*;

          GUI底層容器的實現方式
          第一種:
          JFrame jf = new JFrame();? //拿一個容器
          jf.setLayout(null);???????
          JButton jb = new JButton();
          jb.setBounds(0,0,20,20);? //絕對布局
          jf.add(jb);

          this.setSize(200,200);
          this.setVisible(true);

          第二種:
          類 extends JFrame?? //讓自己的類變成容器
          申明組件;
          public 類
          {
          ?Container ct = this.getContentPane();
          ?ct.add();
          ?this.setSize();
          ?this.setVisible();
          }

          this.setCursor(new Cursor(Cursor.HAND_CURSOR));? //變手

          Image image = new ImageIcon("Sunset.jpg").getImage();
          setIconImage(image);//改變圖標


          容器,根容器,部件看gui資料? E盤..

          布局管理器
          FlowLayout 面板(缺省管理器) 流布局管理器
          在setLayout(null)下全是FlowLayout
          BorderLayout JFrame(缺省布局管理器) 東 西 南 北 中
          GridLayout 行列(像表格)
          CardLayout 卡片布局管理器(沒有頁簽)
          GridBagLayout 格蘭包布局管理器(標準管理器中最靈活的,不好把控)??


          FlowLayout 從上到下,從左到右放置.
          1.當第一行沒有排滿時,會把第一行排滿再排下一行.
          2.不管布局管理器是否改變,組件大小都不會改變.
          FlowLayout folw = new FlowLayout (FlowLayout.LEFT);
          3.在缺省狀態下從中部開始.


          BorderLayout
          當東西南北任何一個地區沒放置任何組件時,中部區域會把周圍的區域侵略掉.
          setLayout(new BorderLayout());
          組件會隨著容器大小的變化而變化.
          add("North",組件); 不好用
          add(組件,BorderLayout.NORTH); 清晰

          GridLayout
          組件會隨著容器大小的變化而變化.
          setLayout(new GridLayout(3,2));? 行列
          add(new Button("first",0));
          根據序列依次填進去,只有列滿了才去填行.
          validate();? 讓容器刷新

          GardLayout
          GardLayout card = new GardLayout();
          setLayout(card);
          add("1",new Button(""));


          CardLayout cl = (CardLayout)cardLayout.getLayout;
          cl.show(cardLayout,"card1");

          事件
          class 類 extends JFrame implements(實現) ActionListener(接口)
          {????????????????????? (受托事件處理)
          ?????????????????????? 不同的事件不同的部門處理
          }
          1 讓類變成監聽者
          2 賦予多少職責就實現多少
          3 建立部件與監聽者的關系
          jb.addActionListener(this);

          ?

          CardLayout cl = (CardLayout)card.getLayout();
          String s = e.getActionCommed();
          if(s.equals("上一步"))
          {
          ?cl.show(card,"card2");
          ?????? ?或者
          ??????? cl.previous(card);
          ?button.setEnabled(false);
          }
          else if(s.equals("下一步"))
          {
          ?cl.show(card,"card1");
          ?????? ?或者
          ??????? cl.previous(card);
          ?button.setEnabled(false);
          }

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          posted on 2007-01-11 21:11 閱讀(303) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大渡口区| 邳州市| 饶平县| 黄龙县| 永清县| 泊头市| 南溪县| 个旧市| 溧阳市| 阿荣旗| 金平| 浦北县| 巩义市| 武清区| 环江| 察雅县| 鄄城县| 高雄市| 松桃| 林西县| 汕尾市| 吉木乃县| 睢宁县| 开江县| 临潭县| 黄浦区| 深圳市| 新绛县| 克山县| 蒙城县| 道孚县| 江口县| 肥城市| 余江县| 乐业县| 鞍山市| 滦南县| 肃北| 靖西县| 武宁县| 柳江县|