第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項

Slides:



Advertisements
Similar presentations
兒童營養知識教育兒童營養知識教育 營養均衡 頭好壯壯 基隆市華興國小 余沛馨護理師 基隆市華興國小 余沛馨護理師.
Advertisements

計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
兒童營養知識教育 營養均衡 頭好壯壯 康樂國小訓導處 黃淑芳護理師.
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系.
計算機程式及實習 期末報告 題目:商店結帳系統
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
客户端用Net-Library和SQL SERVER连接
課程名稱:程式設計 授課老師:________
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
Visual Basic程序设计 主 编  柳青.
第二章 B4A程式語言的開發環境 課程名稱:程式設計 授課老師:李春雄 博士
VB教学中游戏化教学案例设计.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
第八章 分析與設計階段 – 物件導向設計(OOD)
新觀念的 VB6 教本 第 3 章表單設計.
Visual Basic.NET 程序设计语言课程内容
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
程式簡介、VB、物件導向 國立北門高中 林明璋.
第二十八章 開發新的VCL元件 雖然BCB內提供了很多VCL元件,但是一定還有一些我們常常需要用的介面並沒有製作成VCL元件,或是一些個人化的介面,我們也有需要做成VCL元件。在第十三章,我們將介紹如何自行開發新的VCL元件。
進階輸出入元件(一) 本書第三章已介紹Form 、Label 、Edit 及Button 等最基本的輸出入元件, 本章將繼續介紹一些可以提昇輸出入視覺效果的元件, 例如CheckBox 、RadioButton 及RadioGroup 等17 個進階元件, 學習本章將可提昇使用介面的親和性。 核對框(CheckBox)
課程名稱:程式設計 授課老師:________
Chapter 5 進階伺服器控制項.
第17章 使用B4J建立跨平台應用程式 17-1 認識B4J整合開發環境 17-2 下載與安裝B4J開發環境
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
第13章 WinForms基础知识.
行動商務與多媒體應用學系 詹啟祥 辦公室:HB35室 分機:
基础综合 C++ Builder 显示与输入接口
程式語言 -Visual Basic 變數、常數與資料型態.
快乐玩转eclipse plugin插件开发之swt
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第一章 VB概述 本章重点和难点 1.1 VB 概述 1.2 面向对象的程序设计方法基础
Visual Basic程序设计基础 计算机科学学院.
第4章 程序控制结构与算法基础.
第十二章 多模組與多專案.
移动电子商务 第十二章 Windows Mobile应用案例 倚动软件工厂实验室.
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
Visual Basic程序设计.
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Visual Basic.NET 程序设计语言课程内容
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
第7章 繼承/多型/介面 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
VB语言程序设计教程.
107學年度高一程式設計 上機考試 投影片 加減乘除.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
第二章、第三章错题分析.
第 12 章 視窗介面進階.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
第6章 運算式與運算子 [算術與多功能計算機]
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
1位选手参加了歌唱比赛,评委们的评分如下:
Visual C# 程序设计 第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
MenuStrip by Szeto CY Visual C# 2008.
组件 组件是构成图形用户界面的各种元素。通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件分为容器(Container)类和非容器类组件两大类。 控制组件有Button按钮 、Checkbox复选矿、 Choice下拉列表、Label标签、List列表、textcomponent文本(TextField文本域.
Presentation transcript:

第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項 18-3 建立多視窗和多模組應用程式 18-4 使用B4J內建函數庫

18-1 B4J的GUI設計工具與介面控制項 18-1-1 Visual Designer視窗 18-1-2 WYSIWYG Designer視窗 18-1-3 控制項的事件種類 18-1-4 控制項的共同屬性

18-1-1 Visual Designer視窗–圖例 執行「Designer/Open Internal Designer」命令開啟GUI設計工具的「Visual Designer」視窗,如右圖所示:

18-1-1 Visual Designer視窗–主要使用介面1 元件樹:使用樹狀結構顯示控制項之間的關係,選下方【Files】標籤,可以在版面配置檔加入所需的圖檔,例如:控制項的背景圖片,請按【Add Files】鈕加入檔案,在選擇後,按【Remove】鈕可以刪除圖檔。選【Variants】標籤,可以針對不同尺寸和解析度新增不同版面配置變異,請按【New Variants】鈕新增。 屬性清單:當選擇控制項後(也可以在【Abstract Designer】標籤頁選取),可以顯示選擇控制項的屬性清單,這是以群組方式分類,點選之前+或-號可以展開或隱藏屬性,每一個欄位是一個屬性,左邊是屬性名稱;右邊是屬性值。

18-1-1 Visual Designer視窗–主要使用介面2 Abstract Designer標籤頁:以不同色彩方塊來標示控制項的位置和尺寸,其內容是Name屬性值。當在選取控制項上按滑鼠【右】鍵,可以看到一個快顯功能表,提供命令來複製、刪除控制項和調整控制項前後重疊位置,我們可以將它移至最前或推至最後。最後的【Generate】命令能夠自動產生此控制項的宣告程式碼,或建立指定事件的事件處理程序,如右圖所示:

18-1-1 Visual Designer視窗–主要使用介面3 變異腳本:當在B4J專案建立多個不同尺寸的版面配置變異時,為了達到最完美的顯示效果,可以撰寫變異腳本(Variants Script)的程式碼來微調各控制項的顯示。

18-1-1 Visual Designer視窗–功能表 File功能表:可以新增、開啟和儲存使用介面的版面配置檔,其副檔名為.bjl,本書預設名稱是Main.bjl。 Add View功能表:執行命令來新增版面配置所需的控制項,當在右邊【Abstract Designer】標籤看到新增的控制項後,就可以拖拉調整位置、尺寸和修改其屬性值。 Tools功能表:提供命令來自動產生成員(Generate Members),和更改網格尺寸的單位。 Windows功能表:可以快速開啟指定窗格。

18-1-2 WYSIWYG Designer視窗 B4J的「Visual Designer」視窗是在【Abstract Designer】標籤顯示控制項的編排,使用的是不同色彩的色塊,我們可以在獨立「WYSIWYG Designer」視窗檢視使用介面的顯示效果,如下圖所示:

18-1-3 控制項的事件種類 控制項 支援的事件種類 Button、Label、Pane Resize、MouseClicked、MouseMoved、MouseDragged、MousePressed、MouseReleased、FocusChanged Canvas、ImageView MouseClicked、MouseMoved、MouseDragged、MousePressed、MouseReleased、FocusChanged CheckBox CheckedChange ColorPicker ValueChanged ComboBox ValueChanged、SelectedIndexChanged ListView SelectedIndexChanged、Resize、MouseClicked、MouseMoved、MouseDragged、MousePressed、MouseReleased、FocusChanged RadioButton、ToggleButton SelectedChange ScrollPane VscrollChanged、HscrollChanged、Resize、MouseClicked、MouseMoved、MouseDragged、MousePressed、MouseReleased、FocusChanged TextArea、TextField TextChanged、MouseClicked、FocusChanged WebView LocationChanged、PageFinished、MouseClicked、MouseMoved、MouseDragged、MousePressed、MouseReleased、FocusChanged

18-1-4 控制項的共同屬性 屬性 說明 Name 控制項名稱,建議使用有意義的名稱,和在開頭使用3個字元來標示控制項種類,例如:lbl、btn、txt等 Type 控制項型態的唯讀屬性 Event Name 處理事件的事件處理程序名稱,預設與Name屬性值相同。事件處理程序名稱的格式是此屬性值加上「_」符號,再加上事件名稱,例如:Event Name屬性值Button1的MouseClicked事件處理程序名稱為Button1_MouseClicked Parent 父控制項名稱(有些控制項是容器元件,可以包含子控制項),最上層是Main Left 相對父控制項左方邊界的X軸座標 Top 相對父控制項上方邊界的Y軸座標 Width 控制項的寬度 Height 控制項的高度 Enabled 控制項是否可以使用,True是可以;否為不可以 Visible 控制項是否可見,True是可見;否為隱藏 Tag 用來儲存額外資訊的字串

18-2 使用B4J的介面控制項 18-2-1 文字功能控制項 18-2-2 選擇功能控制項

18-2-1 文字功能控制項- TextField和TextArea控制項 B4J的文字輸入控制項共有兩種,其說明如下所示: TextField控制項:輸入單行文字內容,即單行文字方塊。 TextArea控制項:輸入多行文字內容,即多行文字區塊。 在「Visual Designer」視窗是執行「Add View/TextField」命令和「Add View/TextArea」命令來新增。TextField和TextArea控制項都是使用Text屬性來指定和取得輸入值,如下所示: Dim h As Double = txtHeight.Text / 100.0 Dim w As Double = txtWeight.Text 上述程式碼取得TextField控制項txtHeight和txtWeight輸入的值,B4J會自動將字串內容轉換成浮點數。

18-2-1 文字功能控制項- Label控制項 Label控制項是用來作為欄位說明,或輸出執行結果的文字輸出控制項。在「Visual Designer」視窗是執行「Add View/Label」命令來新增,我們也是使用Text屬性來取得和指定顯示的內容。

18-2-1 文字功能控制項-B4J專案 B4J專案:Ch18-2-1\BMI計算機.b4j 在B4J專案建立簡單的BMI計算機,只需輸入身高和體重,就可以計算和顯示BMI值,如下圖所示:

18-2-2 選擇功能控制項-RadioButton控制項 RadioButton控制項是一種單選控制項,在「Visual Designer」視窗是執行「Add View/RadioButton」命令來新增。因為RadioButton控制項通常是一組選項,在B4J需要使用程式碼來群組多個RadioButton控制項,如下所示: rdbAdd.GroupRadioButtons( _ Array(rdbAdd, rdbDivide,rdbMultiply,rdbSubtract)) 上述程式碼呼叫RadioButton物件的GroupRadioButtons()方法(任何一個RadioButton物件都可以),參數是一組RadionButton物件的陣列。 在B4J是使用RadioButton控制項的Selected屬性判斷是否選擇此選項,如下所示: If rdbAdd.Selected Then op = 1

18-2-2 選擇功能控制項-CheckBox控制項 CheckBox控制項是一種複選控制項,在「Visual Designer」視窗是執行「Add View/CheckBox」命令來新增。在B4J是使用If/Else條件配合Checked屬性來判斷是否勾選CheckBox控制項,如下所示: If chkDivide.Checked Then result = IntDivide(opd1, opd2) ' 整數除法 Else result = opd1 / opd2 ' 除 End If

18-2-2 選擇功能控制項-B4J專案 B4J專案:Ch18-2-2\四則計算機.b4j

18-3 建立多視窗和多模組應用程式 18-3-1 多視窗的BMI計算機 18-3-2 多模組的四則計算機

18-3 建立多視窗和多模組應用程式 B4J的每一個視窗是一個Form物件,我們只需新增Form物件就可以建立多視窗的B4J應用程式,為了方便管理Form物件,一個Form物件對應一個類別模組(Class Module)。 為了重複使用程序與函數,我們可以建立程式碼模組(Code Module),將B4J專案共用的程序與函數改置於程式碼模組。

18-3-1 多視窗的BMI計算機-說明 多視窗的BMI計算機是將第18-2-1節的範例切割成2個視窗,在第1個MainForm視窗輸入身高和體重,按下按鈕,顯示第2個Form2視窗來顯示計算結果的BMI值,我們需要分別新增對應2個視窗的版面配置檔。

18-3-1 多視窗的BMI計算機- 在B4J專案新增類別模組(Class Module) 當開啟和儲存B4J專案後,就可以新增其他類別模組,例如:Form2,其步驟如下所示: Step 1:請執行「Project/Add New Module/Class Module」命令新增類別模組。 Step 2:在「Add New Module」對話方塊的【Enter module name】欄,輸入模組名稱Form2,按【Ok】鈕新增模組。

18-3-1 多視窗的BMI計算機- Form2類別模組(Class_Globals) 基本上,我們是在Form2類別模組建立第2個視窗的Form物件,首先在Class_Globals程序宣告Form物件frm,如下所示: Sub Class_Globals Private frm As Form Private lblOutput As Label End Sub

18-3-1 多視窗的BMI計算機- Form2類別模組(Initialize建構子) 然後建立初始物件的建構子方法Initialize(),這是B4J預設的建構子方法名稱,如下所示: Public Sub Initialize(title As String, Owner As Form) frm.Initialize("frm", 260, 150) frm.Resizable = False frm.RootPane.LoadLayout("Result") frm.Title = title frm.SetOwner(Owner) End Sub Initialize()方法的參數是視窗標題文字和擁有者的Form物件(可自行定義),在方法的程式碼是呼叫frm.Initialize()方法初始Form物件,第1個參數是事件名稱,之後是視窗尺寸的寬和高。 Resizeable屬性指定是否允許使用者更改視窗尺寸,False為不可以,然後呼叫方法載入版面配置檔,接著指定標題文字和呼叫SetOwner()方法指定擁有者,如此在顯示視窗時,它會位在擁有者視窗之上。

18-3-1 多視窗的BMI計算機- Form2類別模組(Show方法) 在類別模組擁有Show()方法來顯示視窗frm表單,如下所示: Public Sub Show frm.Show() lblOutput.Text = "BMI值:" & Main.BMI End Sub 上述方法呼叫Show()方法顯示視窗,關閉視窗是使用Close()方法。

18-3-1 多視窗的BMI計算機- 開啟Form2視窗 MainForm主視窗是在Button1按鈕的MouseClicked事件處理程序開啟Form2視窗,如下所示: Dim frm As Form2 frm.Initialize("顯示BMI值", MainForm) frm.Show() 上述程式碼呼叫Initialize()方法初始Form2物件,然後呼叫Show()方法顯示第二個視窗,BMI值是使用行程變數BMI傳遞至此視窗。

18-3-1 多視窗的BMI計算機-B4J專案 B4J專案:Ch18-3-1\多視窗的BMI計算機.b4j 在B4J專案建立多視窗的BMI計算機,這是修改自第18-2-1節的B4J專案,在主視窗輸入身高和體重,按下按鈕,可以在第2個視窗顯示計算結果的BMI值,如下圖所示:

18-3-2 多模組的四則計算機-說明 多模組的四則計算機是修改自第18-2-2節範例,新增程式碼模組,將相關程序和函數都改集中置於程式碼模組檔案。 在B4J專案新增程式碼模組(Code Module) 在開啟和儲存B4J專案後,就可以執行「Project>Add New Module>Code Module」指令新增程式碼模組。

18-3-2 多模組的四則計算機- MyTools程式碼模組 在MyTools程式碼模組有Cal函數計算四則運算式的值;IntDivide函數是整數除法。 當B4J專案的其他模組需要呼叫位在MyTools程式碼模組的程序與函數時,我們需要使用加上模組名稱的全名,如下所示: result = MyTools.Cal(opd1, opd2, op) ...... result = MyTools.IntDivide(opd1, opd2) 上述函數名稱需要指定模組名稱MyTools。

18-3-2 多模組的四則計算機-B4J專案 B4J專案:Ch18-3-2\多模組的四則計算機.b4i 在B4J專案建立多模組的四則計算機,這是修改自第18-2-2節的B4J專案,將與使用介面處理無關的函數都抽出建立成MyTools程式碼模組,其執行結果和第18-2-2節完全相同。

18-4 使用B4J內建函數庫 18-4-1 檔案讀寫 18-4-2 繪圖

18-4 使用B4J內建函數庫 B4J是使用函數庫來擴充功能,提供眾多內建函數庫來處理SQL資料庫、檔案和多媒體等功能。在內建函數庫最重要的是「核心函數庫」(Core Library),提供建立B4J應用程式所需的基礎物件,包含:語法關鍵字、字串、日期/時間、計時器、集合物件和檔案等物件。 B4J物件的方法、屬性和事件的說明,可以在官方文件查詢,其網址如下所示: http://www.b4x.com/b4j/documentation.html 這一節我們就來看一看核心函數庫的檔案和Canvas物件的繪圖功能。

18-4-1 檔案讀寫-說明 B4J是使用預定關鍵字File的方法來讀寫檔案,我們可以將字串、List和Map物件存入檔案,和從檔案讀取字串、List和Map物件。

18-4-1 檔案讀寫-B4J標準目錄的儲存位置 B4J標準目錄是我們可以讀寫檔案的目錄位置,每一個標準目錄擁有不同的用途,如下所示: File.DirApp:B4J應用程式所在的目錄。 File.DirAssets:唯讀目錄,這是在B4J的【Files Manager】標籤新增的檔案,我們可以使用此目錄來讀取檔案內容或圖檔。 File.DirTemp:暫存檔案的目錄。

18-4-1 檔案讀寫-File預建物件的方法 B4J提供File預建物件來處理檔案、資料夾和文字檔案讀寫。相關方法說明如下表所示: 方法 File.WriteString(Dir, FileName, Text) 第1個參數是儲存目錄,第2個參數是檔案名稱,可以將參數Text字串寫入檔案 File.ReadString(Dir, FileName) 讀取參數檔案傳回檔案內容字串 File.WriteList(Dir, FileName, List) 將參數List物件寫入參數檔案 File.ReadList(Dir, FileName) 讀取參數檔案傳回檔案內容的List物件 File.WriteMap(Dir, FileName, Map) 將參數Map物件寫入參數檔案 File.ReadMap(Dir, FileName) 讀取參數檔案傳回檔案內容的Map物件 File.Exists(Dir, FileName) 檢查參數的檔案是否存在,傳回True表示存在;False為不存在

18-4-1 檔案讀寫-B4J專案 B4J專案:Ch18-4-1\檔案讀寫.b4j 在B4J專案測試File預建物件的檔案讀寫方法,擁有6個按鈕,可以分別寫入字串、List物件和Map物件至檔案,和從檔案讀取字串、List物件和Map物件,如下圖所示:

18-4-2 繪圖-畫圓 在畫布畫圓是使用Canvas物件的DrawCircle()方法,如下所示: cvCanvas.DrawCircle(50, 40, 25, fx.Colors.Red, True, 3) 上述方法的前2個參數是圓心(x, y)座標,第3個參數是半徑,第4個參數是色彩,這是JFX物件的色彩常數值,第5個參數決定是否填滿,值True是填滿;False只繪出邊框,最後1個參數是線條寬度。

18-4-2 繪圖-畫長方形 Canvas物件繪出長方形方法是DrawRect()方法,如下所示: cvCanvas.DrawRect (20, 80, 150, 100, fx.Colors.Blue, False, 3) 上述方法的前2個參數是長方形左上角座標(x, y),後2個是寬和高,第5個參數是JFX物件的色彩常數,第6個參數決定是否填滿,值True是填滿;False只繪出邊框,最後1個參數是線條寬度。

18-4-2 繪圖-畫直線 Canvas物件是呼叫DrawLine()方法繪出直線,如下所示: cvCanvas.DrawLine(20, 200, 160, 200, fx.Colors.Green, 3) 上述方法的前2個參數是第1個點(x1, y1)座標,第3和4個參數是第2個點(x2, y2)座標,第5個參數是JFX物件的色彩常數,最後1個參數是線寬度。

18-4-2 繪圖-畫出圖檔 我們可以在畫布繪出圖檔,首先需要建立Image物件,如下所示: image1.Initialize(File.DirAssets, "Cow.jpg") 上述程式碼建立Image物件,Initialize()方法的第1個參數是目錄,File.DirAssets是【Files Manager】標籤新增的圖檔,第2個參數是圖檔名稱字串。然後使用Canvas物件的DrawImage()方法繪出圖檔的Image物件,如下所示: cvCanvas.DrawImage(image1, 20, 220, image1.Width/2, image1.Height/2) 上述方法的第1個參數是繪出的Image物件,第2~3個參數是左上角座標,最後2個是圖片尺寸的寬和高。

18-4-2 繪圖-畫出文字內容 Canvas物件是使用DrawText()方法在畫布繪出文字內容,首先需要建立Font字型物件,如下所示: Dim f As Font f = fx.CreateFont("Courier New", 20, True, False) cvCanvas.DrawText("B4J程式設計!", 20, 320, f, fx.Colors.Red, "LEFT") 上述程式碼呼叫JFX物件的CreateFont()方法建立Font字型物件,DrawText()方法的第1個參數是繪出的字串,第2和3個參數是繪出位置的參考座標(x, y),繪出座標會因文字對齊方式而不同,第4個參數是字型,第6個參數是文字色彩,最後1個參數是文字對齊方式,可以是:"LEFT"、"CENTER"和"RIGHT"。

18-4-2 繪圖-B4J專案 B4J專案:Ch18-4-2\繪圖.b4j 在B4J專案測試Canvas物件的繪圖方法,和顯示Cow.jpg圖檔,如右圖所示:

End