package mid import javax swing import java awt

  • Slides: 23
Download presentation

package mid; import javax. swing. *; import java. awt. event. *; //引用處理事件的event套件 Ex 7

package mid; import javax. swing. *; import java. awt. event. *; //引用處理事件的event套件 Ex 7 -1 public class Mid extends JFrame{ JButton enable = new JButton("使圖示按鈕有效"); JButton disable = new JButton(); JButton icon. Btn = new JButton(new Image. Icon( Mid. class. get. Resource("images/bitc. gif"), "位元文化LOGO")); //宣告指令按鈕物件 //定義並宣告監聽器物件 Action. Listener al = new Action. Listener(){ public void action. Performed(Action. Event e){ //取得動作命令字串, 並判斷觸發事件的按鈕 if(e. get. Action. Command(). equals("enable")){ enable. set. Enabled(false); //依照需求設定按鈕是否有效 disable. set. Enabled(true); icon. Btn. set. Enabled(true); } else{ enable. set. Enabled(true); disable. set. Enabled(false); icon. Btn. set. Enabled(false); } } };

Mid(){ disable. set. Text("使圖示按鈕無效"); //設定按鈕顯示的文字 enable. set. Action. Command("enable"); //設定按鈕的動作命令字串 disable. set. Action. Command("disable");

Mid(){ disable. set. Text("使圖示按鈕無效"); //設定按鈕顯示的文字 enable. set. Action. Command("enable"); //設定按鈕的動作命令字串 disable. set. Action. Command("disable"); disable. set. Enabled(false); //將按鈕的起始狀態設定為無效 icon. Btn. set. Enabled(false); enable. add. Action. Listener(al); //註冊監聽器 disable. add. Action. Listener(al); Container cp = get. Content. Pane(); //取得內容面版 cp. set. Layout(new Flow. Layout()); //設定以Flow. Layout配置版面 cp. add(enable); //將元件加入面版 cp. add(icon. Btn); cp. add(disable); //設定視窗關閉動作、視窗大小, 並顯示視窗 set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); set. Size(600, 150); set. Visible(true); } public static void main(String args[]) { new Mid(); //宣告視窗框架物件 } }

package mid; import javax. swing. *; import javax. swing. event. *; import java. awt.

package mid; import javax. swing. *; import javax. swing. event. *; import java. awt. event. *; //引用處理事件的event套件 Ex 7 -2 public class Mid extends JFrame { JLabel[] lb. Image = { //宣告顯示圖片的標籤物件 new JLabel( new Image. Icon( Mid. class. get. Resource("images/A 4023. jpg"), "Access 2003 徹底研究")), new JLabel( new Image. Icon( Mid. class. get. Resource("images/A 4033. jpg"), "Access 2003 程式設計")), new JLabel( new Image. Icon( Mid. class. get. Resource("images/A 4043. jpg"), "Access 2003 網路應用")), new JLabel( new Image. Icon( Mid. class. get. Resource("images/W 4075. jpg"), "ASP動態網頁入門實務")), new JLabel( new Image. Icon( Mid. class. get. Resource("images/W 3135. jpg"), "JSP動態網頁入門實務")) }; JButton btn. Pre = new JButton("上一頁"), //宣告控制Card. Layout面版顯示內容的按鈕 btn. Next = new JButton("下一頁"), btn. First = new JButton("第一頁"), btn. Last = new JButton("最後一頁"), btn. Name = new JButton("ASP動態網頁入門實務");

Action. Listener al. Btn = new Action. Listener(){ //定義監聽Action. Event事件的監聽器類別 public void action. Performed(Action.

Action. Listener al. Btn = new Action. Listener(){ //定義監聽Action. Event事件的監聽器類別 public void action. Performed(Action. Event e){ String str. Command = e. get. Action. Command(); //取得動作命令字串 if(e. get. Action. Command(). equals("上一頁")) cl. previous(jp. Image); //移至上一張卡片 else if(e. get. Action. Command(). equals("下一頁")) cl. next(jp. Image); //移至下一張卡片 else if(e. get. Action. Command(). equals("第一頁")) cl. first(jp. Image); //移至第一張卡片 else if(e. get. Action. Command(). equals("最後一頁")) cl. last(jp. Image); //移至最後一張卡片 else if(e. get. Action. Command(). equals("ASP動態網頁入門實務")) cl. show(jp. Image, "ASP動態網頁入門實務"); //移至描述內容為"ASP動態網頁入門實務"的卡片 } }; Card. Layout cl = new Card. Layout(10, 5); //宣告配置版面的Card. Layout物件 JPanel jp. Image = new JPanel(cl); //宣告容納圖片的JPanel容器 Mid(){ //以for迴圈將包含圖片的標籤元件與敘述加入容器 for(JLabel elm: lb. Image) jp. Image. add(elm , ((Image. Icon)elm. get. Icon()). get. Description());

JPanel jp. Btn = new JPanel(new Grid. Layout(5, 1, 20, 10)); //宣告JPanel物件並設定以Grid. Layout配置版面 jp.

JPanel jp. Btn = new JPanel(new Grid. Layout(5, 1, 20, 10)); //宣告JPanel物件並設定以Grid. Layout配置版面 jp. Btn. add(btn. First); //將按鈕元件加入JPanel容器 jp. Btn. add(btn. Pre); jp. Btn. add(btn. Next); jp. Btn. add(btn. Last); jp. Btn. add(btn. Name); //註冊處理滑鼠事件的監聽器 btn. First. add. Action. Listener(al. Btn); btn. Pre. add. Action. Listener(al. Btn); btn. Next. add. Action. Listener(al. Btn); btn. Last. add. Action. Listener(al. Btn); btn. Name. add. Action. Listener(al. Btn); Container cp = get. Content. Pane(); //取得內容面版 cp. set. Layout(new Flow. Layout()); //設定使用Flow. Layout配置版面 cp. add(jp. Btn); //將元件加入內容面版 cp. add(jp. Image); //設定視窗預設的關閉動作、視窗大小, 並顯示視窗 set. Default. Close. Operation(JFrame. EXIT_ON_CLOSE); set. Size(450, 300); set. Visible(true); } public static void main(String args[]) { new Mid(); //宣告視窗框架物件 } }

以下將說明JCheck. Box類別建構子的規格: public JCheck. Box() public JCheck. Box(Icon icon, boolean selected) public JCheck. Box(String

以下將說明JCheck. Box類別建構子的規格: public JCheck. Box() public JCheck. Box(Icon icon, boolean selected) public JCheck. Box(String text) public JCheck. Box(Action a) public JCheck. Box(String text, boolean selected) public JCheck. Box(String text, Icon icon, boolean selected) Item. Event事件的回應 當使用者選取核取方塊將觸發Item. Event事件,Item. Event類別的繼承架構如下所示。 而回應Item. Event事件的監聽器類別,需實作Item. Listener介面。該介面定義了一個 void item. State. Changed()方法,規格如下: void item. State. Changed(Item. Event e)

切換按鈕的用途與選擇按鈕類似,均可提供使用者在數個選項裡,選取一 種選項。欲建立一組控制特定設定的切換按鈕,需運用JToggle. Button類別, 並配合建立按鈕群組的Button. Group類別(7 -4 -3節)。 範例7 -9將示範運用切換按鈕控制標籤內文字的垂直方向對齊方式,執行結 果如下圖所示。 以下將說明JToggle. Button類別建構子的規格: public JToggle.

切換按鈕的用途與選擇按鈕類似,均可提供使用者在數個選項裡,選取一 種選項。欲建立一組控制特定設定的切換按鈕,需運用JToggle. Button類別, 並配合建立按鈕群組的Button. Group類別(7 -4 -3節)。 範例7 -9將示範運用切換按鈕控制標籤內文字的垂直方向對齊方式,執行結 果如下圖所示。 以下將說明JToggle. Button類別建構子的規格: public JToggle. Button() public JToggle. Button(Icon icon, boolean selected) public JToggle. Button(String text) public JToggle. Button(Action a) public JToggle. Button(String text, boolean selected) public JToggle. Button(String text, Icon icon, boolean selected)