JAVA使用AWT和Swing 類完成圖形用戶界面編程,AWT全稱是抽象窗口工具集(Abstract Window Toolkit),它是最早的sun提供的GUI庫(Graphics User Interface)圖形用戶界面。
AWT是窗口框架,它從不同平台的窗口系統中抽取共同組件,當使用AWT編寫圖形界面應用時,程序僅指定了界面組件的位置和行為,並為提供真正的實現,JVM 調用操作系統本地的圖形界面來創建和平台一直的對等體。
1. java中所有和AWT編程相關的類放在java.awt包以及他的子包中。 AWT中有兩個基類:Component和MenuComponent。
Component代表一個以圖形化方式顯示出來,並可與用戶交互的對象;
MenuComponent則代表圖形界面菜單組件,包括MenuBar(菜單條),MenuItem(菜單項)等。
2.AWT容器
在AWT中 Container 是一種特殊的Component。它代表一種容器。Container是Component的子類 。容器本身也是一個組件,具有組件的性質。可以調用Component類中的所有方法。
AWT提供了兩種主要容器類型
- Window:可以獨立存在的窗口。
- Panel:可作為容器容納其他組件,但不能獨立存在,必須添加到其他容器中。
Frame代表常見的窗口,它是Window類的子類, - Frame 對象有標題,允許通過拖拉來改變窗口的位置,大小。
- 初始化時不可見 ,可用setVisible(true)使其顯示出來。
-
默認使用 BorderLayout作為其布局管理器。
通過Frame創建一個窗口
package AWT1; import java.awt.Frame; public class FrameTest { public static void main(String[] args) { Frame f = new Frame("測試窗口");//標題 //設置窗口的大小和位置 f.setLocation(30, 30); f.setSize(250, 200); //將窗口顯示出來(默認隱藏) f.setVisible(true); } }
注意:設置窗口位置的下x,y 是從電腦屏幕的左上角開始。 ps(請問一下我在其他博客上看到的為什么背景是白色的,難道真的是桌面圖片是白色?)
如果點擊此窗口的右上角的“×”,窗口不會關閉,這是因為該窗口還未編寫任何事物響應,可以通過關閉程序命令關閉。
通過Panel作為容器來盛裝一個文本框和一個按鈕,並將該Panel對象添加到Frame對象中
1 package AWT1; 2 import java.awt.Button; 3 import java.awt.Frame; 4 import java.awt.Panel; 5 import java.awt.TextField; 6 public class FrameTest { 7 public static void main(String[] args) { 8 Frame f = new Frame("測試窗口"); 9 //創建一個Panel 容器 10 Panel p=new Panel(); 11 //向panel中添加兩個組件 12 p.add(new TextField(20));//20列,雖然我不知道什么是20列。 13 p.add(new Button("單機我"));//按鈕上的文字 14 //將panel放在frame 15 f.add(p); 16 f.setBounds(30, 30, 250, 200); 17 f.setVisible(true);//默認frame隱藏 18 } 19 }
ps( TextField(20) 20列是指什么20列 )
ScrollPane 是一個滾動條的容器,它不能獨立存在,必須被添加到其他容器。
ScrollPane 特點
1.可作為容器盛裝其他組件,當組件占用空間過大時,ScrollPane 自動產生滾動條,當然也可以通過指定特點的構造器參數來指定默認具有滾動條。
2. 不能單獨存在,必須放置到其他容器中
3. 默認使用BorderLayout作為其布局管理器。
使用ScrollPane容器來代替Panel容器
public class FrameTest { public static void main(String[] args) { Frame f = new Frame("測試窗口"); //創建一個scrollPane 容器,指定總是具有滾動條。 ScrollPane sp= new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS); //向scrollPane容器中添加兩個組件 sp.add(new TextField(20)); sp.add(new Button("click")); //將scrollPane 容器添加到Frame 對象中 f.add(sp); f.setBounds(30, 30, 250, 200); f.setVisible(true); } }
注意:程序明明有一個文本框,一個按鈕,但只能看到一個按鈕,卻看不到文本框? 這是因為ScrollPane 使用BorderLayout布局管理器,導致了只有一個組件顯示出來。
本人毫無編程經驗,專科生,一邊學一邊分享。也希望有大牛幫我回答文章中的問題
第一次寫,什么也不懂,寫博客的原因時想讓大家能指出我的錯誤,歡迎指出。