Java----AWT元件開發和Swing介面程式設計(一)
一、AWT元件開發
1、AWT入門
AWT是抽象視窗工具箱的縮寫,它為編寫圖形使用者介面提供了使用者介面,通過這個介面就可以繼承很多方法,省去了很多工作。AWT還能使應用程式更好地同用戶進行互動。
AWT中的容器是一種特殊的元件,他可以包含其他元件,即可以把元件方法容器中。Container類是用來存放其他元件的Component類的子類,Frame類又是Component的子類。Frame類用於建立具有標題欄和邊界的視窗。這裡通過繼承Frame類來建立自己的介面。
[java] view plain copy print- publicclass test extendsFrame{
- //建立構造器
- public test() throws HeadlessException {
- this.setTitle("第一個視窗程式");
- //x , y是距離顯示器左上角的距離;w , h是視窗的長寬
- this.setBounds(100, 100, 250, 250);
- //或者使用以下方式代替上面的一句程式碼
- // this.setLocation(100, 100);
-
// this.setSize(250 , 250);
- this.setVisible(true);
- }
- publicstaticvoid main(String[] str) {
- new test();
- }
- }
上面是視窗中一些必不可少的東西,下面是一些視窗的基礎應用:
>setTitle(“視窗”):定義視窗名稱
>add(button):把按鈕新增到視窗中
>setBackground(Color):設定視窗的背景顏色
>setResizable(boolean):設定視窗大小是否可以改變
>setAlwaysOnTop(boolean):設定視窗是否總在最上面
>setBounds(x, y, w, h):設定視窗起始位置和大小
>setVisible(boolean):設定視窗可見
如果想建立多個視窗,只需要在主方法main()中建立多個物件就行了。
2、佈局管理器
Java中的圖形介面在佈局管理上採用容器和佈局管理相分離的方案,也就是說容器只是把元件放進來,但它不管怎樣放置。至於如何放置需要用到佈局管理器。Java中有幾種佈局管理器,分別是:FlowLayout , BorderLayout, GridLayout和GardLayout。
1)、FlowLayout
FlowLayout佈局管理器是預設的佈局管理器,它將元件按照從左到右、從上到下的順序來安排,並在預設情況下使元件儘量居中放置。下面的程式碼要新增到test()類中:
this.setLayout(new FlowLayout());
//將按鈕元件放入容器中
this.add(new Button("確定"));
this.add(new Button("取消"));
大家可以通過建立許多按鈕來觀察FlowLayout對元件的擺放規律,下面是使用一個按鈕監聽事件來實現按鈕的新增:
[java] view plain copy print?- publicclass test extendsFrame implements ActionListener{
- int i;
- Button b = new Button("Add");
- public test() throws HeadlessException {
- this.setTitle("第一個視窗程式");
- this.setLayout(new FlowLayout());
- this.add(b);
- b.addActionListener(this);
- this.setBounds(100, 100, 250, 250);
- this.setVisible(true);
- }
- @Override
- publicvoid actionPerformed(ActionEvent e){
- i++;
- Button bi = newButton("Button" + i);
- this.add(bi);
- this.setVisible(true);
- }
- publicstaticvoid main(String[] str) {
- new test();
- }
- }
在本程式中,由於按鈕的大小不同,其整體看起來不太整齊,但這更說明了FlowLayout佈局管理器的規則。
2)、BorderLayout
BorderLayout佈局管理器只允許在容器內放置5個元件,這5個元件的位置是由BorderLayout類中的North、South、East、West和Center5個常量來確定的,他們對應著容器中的上下左右中,用法如下:
this.add(new Button(“按鈕”) ,BorderLayout.NORTH);
this.add(new Button(“按鈕”) ,BorderLayout.CENTER);
元件在BorderLayout中的大小都是可以改變的。一般情況下可以讓中間區域大一些,而且可以只用其中幾個區域。
3)、GridLayout
GridLayout佈局管理器是矩形網格,在網格中放置元件,每個網格的高度和寬度都相等,元件的排列順序與FlowLayout相同。元件隨著網格的大小而在水平和垂直方向上拉伸,網格的大小是由容器的大小和建立網格的多少來確定的。其用法如下:
this.setLayout(newGridLayout(2 , 3)); //建立一個2行3列的網格
this.add(new Button(“按鈕”));
當元件數目大於網格數時,GridLayout保持行數不變而自動增加列數。
4)、CardLayout
CardLayout執行在一個元件中每次只顯示一組元件中的某一個,使用者可以根據需要來選擇使用哪個元件。CardLayout類提供瞭如下選擇元件的方法。
>First(Container p):選擇容器中的第一個元件
>last(Container p):選擇容器中的最後一個元件
>next(Container p):選擇容器中當前元件的下一個元件
>prebvious(Container p):選擇容器中當前元件的上一個元件
>show(Container p ,String name):選擇容器中指定的元件
前面幾種很容易理解,而show()方法來選擇容器中指定的元件。它的第一個引數是管理元件的容器,第二個引數是標識要顯示元件字串,該字串與將元件新增到容器時使用的字串相同。其用法如下:
[java] view plain copy print?- publicclass test extendsFrame implements ActionListener{
- Panel p = new Panel();
- Button bf = new Button("First");
- Button bl = new Button("Last");
- Button bn = new Button("next");
- Button bp = newButton("previous");
- Button bg = new Button("Go");
- TextField tf = new TextField();
- //設定CardLayout佈局管理器
- CardLayout cl = new CardLayout();
- public test() throws HeadlessException {
- this.setTitle("CardLayout佈局管理器");
- this.setLayout(null);
- this.add(p);
- //定義p面板為CardLayout佈局管理器
- p.setLayout(cl);
- //為CardLayout佈局管理器新增按鈕
- for (int i = 1; i <= 10; i++) {
- Button btemp = newButton("Button" + i);
- p.add(btemp, "" + i);
- }
- //為每個元件設定大小位置並新增到容器中
- p.setBounds(10, 40, 100, 100);
- this.add(bf);
- bf.addActionListener(this);
- bf.setBounds(120, 40, 60, 20);
- this.add(bl);
- bl.addActionListener(this);
- bl.setBounds(120, 70, 60, 20);
- this.add(bn);
- bn.addActionListener(this);
-
相關推薦
Java----AWT元件開發和Swing介面程式設計(一)
一、AWT元件開發 1、AWT入門 AWT是抽象視窗工具箱的縮寫,它為編寫圖形使用者介面提供了使用者介面,通過這個介面就可以繼承很多方法,省去了很多工作。AWT還能使應用程式更好地同用戶進行互動。 AWT中的容器是一種特殊
java之 22天 GUI 圖形介面程式設計(一)
GUI(圖形使用者介面) import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.WindowAdapter; import java
Java Swing介面程式設計(31)---選單欄:JMenu
package com.beyole.test; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JM
Java Swing介面程式設計(12)---JPanel佈局
package com.beyole.util; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.
Java基礎總結之GUI圖形介面程式設計
GUI和CLI: GUI:(Graphical User Interface)圖形使用者介面:用圖形的方式顯示計算機的操作介面。 CLI:(Command Line User Interface)命令列使用者介面:常見的Dos命令列操作。 awt和swing: awt:(Abstra
java序列化機制和Serialize介面
java序列化機制 Serialize 介面 java本身的序列化機制存在問題: 1.序列化資料結果比較大,傳輸效率低 2.不能跨語言對接 XML編碼格式的物件序列化機制成為主流 序列化機制: MessagePack Protocol Buffers Du
[java學習筆記]Iterator和Iterable介面
Iterator和Iterable都是java的迭代器介面,二者既有區別又有聯絡,下面從介面定義,實現和方法呼叫三方面分析兩介面的關係和使用方法。 1.介面定義 1.1 Iterable Iter
Java應用程式開發學習之介面
一、介面的抽象方法定義: 在任何版本的java中,介面都能定義抽象方法 格式: public abstract 返回值型別 方法名稱(引數列表); 注意事項: 1.介面當中的抽象方法,修飾符必須是兩個固定的關鍵字:public abstract 2.這兩個關鍵字修飾符,可以選擇性省略
Python操作Excel, 開發和呼叫介面,傳送郵件
筆記: 上週回顧: 模組: 匯入模組的順序 lyl.py # def hhh(): pass name = 'lyl' a.py import lyl import sys from lyl import hhh
java微信開發模板訊息介面使用
微信開發--模板訊息介面 原理: 1.微信公眾號(服務號) 設定模板標題和模板內容--》生成模板ID 2.設定填充模板資料(使用map封裝),匹配Id,傳送給使用者。 package com.dm.wx.domain.templateMsg;import
Java圖形介面程式設計(一)
初步認識swing awt AWT(abstract Window Toolkit)是java釋出的第一個圖形介面庫。AWT通過呼叫系統本地的庫,來建立和顯示控制元件。 AWT 的元件都是使用
Ubuntu下用glade和GTK+開發C語言介面程式(一)
前言:對於大學中計算機系的每年暑假的課設有太多想說的,能從中學到很多東西,當然不排除打醬油的,這些可以掠過哦,凡事都打醬油,人生也是打醬油的吧。2333。 對於大三以前的課設一般的要求都是用C寫的,即使你學的面向物件很好,也只能老老實實的來用C寫。當然這其中還有好多要說道的
Java設計第一原則:面向介面程式設計
在專案中的意義: 在傳統的專案開發過程中,由於客戶的需求經常變化,如果不採用面向介面程式設計,那麼我們必須不停改寫現有的業務程式碼。改寫程式碼可能產生新的BUG,而且改寫程式碼還會影響到呼叫該業務的類,可能全都需要修改,影響系統本身的穩定性。而且為了將改寫程式碼帶來的影響最小,我們不得不屈服當前的系
Vue開發音樂移動端實戰(1) —header頭部元件開發和swiper輪播圖開發 以及利用JSONP獲取QQ音樂輪播圖資料
首先做專案配置 安裝babel-polyfill這是es6語法轉化(在路由中引用的)babel-fastclick 去除移動端click點選的300毫秒延遲(在路由中index.js下寫入)import fastclick from 'fastclick'//引用 fastc
java的lambda表示式 和stream介面使用
lambda格式 method(param->表示式); //或者 method(param->{ 語句塊; }); 示例 List<String> list=Lists.newArrayList(); list.add("jack"); list.add(
Java數據結構和算法(一)——簡介
技術 其他 高程 度量 得出 rsh 基本功 represent 介紹 本系列博客我們將學習數據結構和算法,為什麽要學習數據結構和算法,這裏我舉個簡單的例子。 編程好比是一輛汽車,而數據結構和算法是汽車內部的變速箱。一個開車的人不懂變速箱的原理也是能開車的,同理一個不
Java多執行緒和記憶體模型(一):程序和執行緒基礎
Java多執行緒和記憶體模型(一) 由於java是執行在 JVM上 的,所以需要涉及到 JVM 的記憶體模型概念,需要理解記憶體模型,就需要多執行緒的基礎; 而執行緒是基於載體執行緒裡的,所以我們藉由作業系統的程序來講一講。 程序 什麼是程序?
Java應用簡易開發框架SAF介紹(一)
概述 SAF是一套簡易的開發Java應用系統的框架。SAF就是Simple Application Framework的縮寫。 說到Java應用開發框架,早些年我們用得最多的是Spring+Struts+Hibernate(簡寫為SSH),近些年用得更多的是Spring+SpringMVC+
Java多線程和並發(一),進程與線程的區別
img 分享 com image font str src spa .com 目錄 1.進程和線程的由來 2.進程和線程的定義 3.進程和線程的區別 一、進程和線程的區別 1.進程和線程的由來 2.進程和線程的定義 進程是資源分配的最小單位,線程是CPU調度的最
Java自學之路-Java基礎教程-42:Java的UI介面AWT和Swing元件
在學Java的初期,其實很不情願地學,這面向物件的語言還是和C語言似的,沒有什麼介面的呢,也不能在桌面上執行呢。能不能像電腦裡的桌面軟體一樣,雙擊就可以開啟?能不能像其他桌面軟體一樣,可以輸入文字,可以有按鈕或選單什麼的?能不能搞出一個滑鼠點點就能用的軟體出來?其實Java也