視窗程式設計 6. 標籤、顏色、字型與圖示 Chih Hung Wang Reference:

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
项目6 通用堆栈.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
JAVA程序设计 天津工程职业技术学院计算机工程系软件技术教研室.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
Java System Concepts and Animation Programming
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
視窗程式設計 2. 視窗版面配置 Chih Hung Wang Reference:
第一章 面向对象程序设计.
第11章 Java多媒体技术.
2015/Spring 跨平台行動程式進階應用 王派洲老師
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
Ch07 介面與多重繼承 物件導向程式設計(II).
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
顏色與背景CSS樣式.
視窗程式設計 8.按鈕、核取方塊與按鈕群組 Chih Hung Wang Reference:
視窗程式設計 3. Java 視窗入門 Chih Hung Wang Reference:
Ch02 視窗Swing套件 物件導向系統實務.
Java语言程序设计-图形用户界面设计(2)
Ch08 巢狀類別 物件導向程式設計(II).
視窗程式設計 5.文字欄位相關設計 Chih Hung Wang Reference:
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
Chapter 9 設計的精細製作: 行動計算 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
程式設計實作.
CH09 套件 物件導向程式設計(II).
記事本 物件導向系統實務.
類別(class) 類別class與物件object.
CSS樣式 靜宜大學 資管系 楊子青.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
Ch04 事件處理 物件導向系統實務.
CH03 為自己的視窗加上小元件 物件導向系統實務.
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
CH04 視窗中元件排排坐 物件導向系統實務.
C/C++/Java 哪些值不是头等程序对象
第一單元 建立java 程式.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 19 章 XML記憶體執行模式.
HTML – 超連結與圖片 資訊教育.
伸峰科技股份有限公司 李書帆 SanfongWeb 網頁編修 伸峰科技股份有限公司 李書帆
Visual C++ Windows Programming
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java基本语法 讲师:复凡.
CSS樣式 靜宜大學 資管系 楊子青.
Dreamweaver 進階網頁製作 B 許天彰.
第二章 Java基本语法 讲师:复凡.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
JAVA 程式設計與資料結構 第三章 物件的設計.
Applet.
判斷(選擇性敘述) if if else else if 條件運算子.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Summary
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

視窗程式設計 6. 標籤、顏色、字型與圖示 Chih Hung Wang Reference: 1. Java 2 視窗程式設計,文魁出版社,位元文化編著 (2008) (教科書) 2. 深入研究Java Swing,上奇資訊股份有限公司,黃嘉輝著 (2011) 3. Java SE 6.0視窗程式設計之道,碁峰出版社,黃嘉輝著 (2008) 4. Java 初學指引,博碩文化,陳錦輝著 (2010) 視窗程式設計 6. 標籤、顏色、字型與圖示 Chih Hung Wang

標籤 Swing的JLabel類別可以提供使用者建立顯示文字與圖示的標籤,並可控制文字與圖示的水平與垂直對齊方式。JLabel類別的繼承架構如下所示。 由於標籤於視窗介面的主要功能為顯示資料,所以,JLabel類別非常簡單,並不需要運用MVC架構,故沒有模型類別(model class)。JLabel類別建構子的規格如下: public JLabel() public JLabel(Icon image) public JLabel(Icon image, int horizontalAlignment) public JLabel(String text) public JLabel(String text, int horizontalAlignment) public JLabel(String text, Icon icon, int horizontalAlignment)

下表將介紹JLabel類別的常用方法:

範例4-1將示範標籤的運用。 顏色與字型 範例 本節將運用範例4-2說明如何運用Color類別設定標籤使用的前景顏色,以及標籤文字的字型、樣式與大小,執行結果如下圖。

範例4-1 import javax.swing.*; //引用套件 import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class LabelEX extends JFrame { LabelEX() { JLabel lbRight = new JLabel("靠右", JLabel.RIGHT); JLabel lbLeft = new JLabel("靠左", JLabel.LEFT); JLabel lbCenter = new JLabel("置中", JLabel.CENTER); JLabel lbLeadingTop = new JLabel("靠前緣", JLabel.LEADING); lbLeadingTop.setVerticalAlignment(SwingConstants.TOP); //設定垂直方向靠上對齊 JLabel lbTrailingBottom = new JLabel("靠後緣", JLabel.TRAILING); lbTrailingBottom.setVerticalAlignment(SwingConstants.BOTTOM); //設定垂直方向靠下對齊 Container cp = getContentPane(); //取得內容面版 cp.setLayout(new GridLayout(2, 3, 10, 10)); //取得佈局管理員

cp.add(lbLeft); //將元件加入面版 cp.add(lbCenter); cp.add(lbRight); cp.add(lbLeadingTop); cp.add(lbTrailingBottom); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定關閉視窗將預設結束程式 setSize(300, 250); //設定視窗的大小為300x250 setVisible(true); //顯示視窗框架 } public static void main(String args[]) { new LabelEX(); //宣告視窗框架物件

顏色 在程式設計運用實務上,有兩種方式: 第一種、直接運用Color類別定義的靜態屬性,取得代表特定顏色的Color物件。 第二種、以RGB值宣告Color物件 RGB值為運用RGB模型(Red-Green-Blue,紅、綠、藍)描述顏色時,所使用之數值,共由三個數值組成,分別代表形成指定顏色之紅、綠、藍三原色光的強度,代表強度的數值範圍從0到255,255代表最大強度。若欲宣告表達自訂顏色的Color物件時,則可以在宣告Color物件時,傳入描述該顏色的RGB值。

欲運用某字型時,可以建立描述這個字型的Font物件,以下為Font類別的建構子。   public Font(String name, int style, int size)

範例4-2 import javax.swing.*; //引用套件 import java.awt.*; public class ColorFontEX extends JFrame { ColorFontEX() { JLabel lbRed = new JLabel("紅"); lbRed.setForeground(Color.RED); //以Color類別的常數取得代表紅色的Color物件, //並設定為標籤的前景顏色 JLabel lbGreen = new JLabel("綠"); lbGreen.setForeground(new Color(0, 255, 0)); //以整數的RGB值宣告代表綠色的Color物件, JLabel lbBlue = new JLabel("藍"); lbBlue.setForeground(new Color(0.0f, 0.0f, 1.0f)); //以浮點數的RGB值宣告代表藍色的Colord物件, JLabel lbTimesBold15 = new JLabel("Times New Roman"); lbTimesBold15.setFont( new Font("Times New Roman", Font.BOLD, 20)); //設定標籤內文字使用的字型

Container cp = getContentPane(); //取得內容面版 cp.setLayout(new GridLayout(2, 2, 10, 10)); //取得佈局管理員 cp.add(lbRed); //將元件加入面版 cp.add(lbGreen); cp.add(lbBlue); cp.add(lbTimesBold15); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定關閉視窗將預設結束程式 pack(); //設定以適當大小顯示 setVisible(true); //顯示視窗框架 } public static void main(String args[]) { new ColorFontEX(); //宣告視窗框架物件

圖示 處理顯示於視窗介面顯示於各種元件上的圖示,Swing將運用Icon介面與ImageIcon類別處理。Icon介面可供使用者以繪圖的方式建立圖示,ImageIcon類別則用於顯示圖檔的圖示。 範例4-3將示範如何實作Icon介面,定義繪製圖示的類別,以及運用ImageIcon類別以圖檔建立圖示,執行結果如圖所示。 實作Icon介面繪製圖示 Icon介面將定義下表所列的三種方法,以決定圖示的高度、寬度與圖示的畫面。

範例 4-3 import javax.swing.*; //引用套件 import java.awt.*; public class IconEX extends JFrame{ IconEX(){ JLabel lbIcon = new JLabel(new BitcIcon(80, 80)); //以標籤顯示圖示 JLabel lbImageIcon = new JLabel(new ImageIcon(".\\Icon\\Bitc.gif")); //以圖檔建立顯示於標籤的圖示 Container cp = getContentPane(); //取得內容面版 cp.setLayout(new GridLayout(1, 2, 10, 10)); //取得佈局管理員 cp.add(lbIcon); //將元件加入面版 cp.add(lbImageIcon); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定關閉視窗將預設結束程式 pack(); //以適當大小顯示視窗 setVisible(true); //顯示視窗框架 } public static void main(String args[]) { new IconEX(); //宣告視窗框架物件

class BitcIcon implements Icon { //宣告實作Icon介面的圖示類別 private int width, height; public BitcIcon(int w, int h){ //建構子 width = w; height = h; } //繪製圖示 public void paintIcon(Component c, Graphics g, int x, int y){ g.drawRect(5, 5, 70, 70); //繪製矩形 g.drawString("位元文化", 15, 45); //繪製文字 public int getIconWidth(){ //取得圖示寬度 return width; public int getIconHeight(){ //取得圖示高度 return height;

當宣告同時顯示文字與圖示的標籤,呼叫建構子時,傳入的位置常數將控制圖示位置。若欲設定圖示的垂直方向對齊方式,則必須呼叫setVerticalAlignment()方法。而文字的水平、垂直方向之對齊方式的設定,則以相對於圖示位置的方式設定,執行設定時,需呼叫setVerticalTextPosition()方法與setHorizontalTextPosition()方法。   預設情況下,同時顯示文字與圖示的標籤,圖示的水平與垂直方向均為置中對齊,文字位置則置於圖示的右方。範例4-4將示範同時顯示圖示與文字的標籤,並設定文字相對於圖示的位置。

Ex 4-4 import javax.swing.*; //引用套件 import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class LabelIconEX extends JFrame{ LabelIconEX(){ JLabel lbBitcCenter = new JLabel("文字置於圖示中央", new ImageIcon(".\\Icon\\Bitc.gif"), SwingConstants.CENTER); //同時顯示文字與圖示的標籤, 圖示置中 lbBitcCenter.setHorizontalTextPosition(SwingConstants.CENTER); //設定文字的水平方向相對於圖示採置中對齊 JLabel lbBitcTop = new JLabel("文字置於圖示中央、靠上", lbBitcTop.setHorizontalTextPosition(SwingConstants.CENTER); lbBitcTop.setVerticalTextPosition(SwingConstants.TOP); //設定文字的垂直方向相對於圖示採置上對齊 JLabel lbBitcBottom = new JLabel("文字置於圖示中央、靠下", lbBitcBottom.setHorizontalTextPosition(SwingConstants.CENTER); lbBitcBottom.setVerticalTextPosition(SwingConstants.BOTTOM); //設定文字的垂直方向相對於圖示採置下對齊 JLabel lbBitcLeft = new JLabel("文字置於圖示左方、靠下", new ImageIcon(".\\Icon\\Bitc.gif"), SwingConstants.CENTER); lbBitcLeft.setHorizontalTextPosition(SwingConstants.LEFT); //設定文字的水平方向相對於圖示採置左對齊 lbBitcLeft.setVerticalTextPosition(SwingConstants.BOTTOM); Ex 4-4

JLabel lbBitcRight = new JLabel("文字置於圖示右方、靠上", new ImageIcon(".\\Icon\\Bitc.gif"), SwingConstants.CENTER); //同時顯示文字與圖示的標籤, 圖示置中 lbBitcRight.setHorizontalTextPosition(SwingConstants.RIGHT); //設定文字的水平方向相對於圖示採置右對齊 lbBitcRight.setVerticalTextPosition(SwingConstants.TOP); //設定文字的水平方向相對於圖示採置上對齊 Container cp = getContentPane(); //取得內容面版 cp.setLayout(new GridLayout(2, 3, 10, 10)); //取得佈局管理員 cp.add(lbBitcCenter); //將元件加入面版 cp.add(lbBitcTop); cp.add(lbBitcBottom); cp.add(lbBitcLeft); cp.add(lbBitcRight); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設定關閉視窗將預設結束程式 pack(); //以適當大小顯示視窗 setVisible(true); //顯示視窗框架 } public static void main(String args[]) { new LabelIconEX(); //宣告視窗框架物件