国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

詳解如何使用Java編寫圖形化的窗口

2019-11-26 14:56:32
字體:
供稿:網(wǎng)友

窗口是GUI編程的基礎(chǔ),小應(yīng)用程序或圖形界面的應(yīng)用程序的可視組件都放在窗口中,在GUI中,窗口是用戶屏幕的一部分,起著在屏幕中一個小屏幕的作用。有以下三種窗口:
Applet窗口:Applet類管理這個窗口,當應(yīng)用程序程序啟動時,由系統(tǒng)創(chuàng)建和處理;
框架窗口(JFrame):這是通常意義上的窗口,它支持窗口周邊的框架、標題欄,以及最小化、最大化和關(guān)閉按鈕;
一種無邊框窗口(JWindow):沒有標題欄,沒有框架,只是一個空的矩形。

用Swing中的JFrame類或它的子類創(chuàng)建的對象就是JFrame窗口。

JFrame類的主要構(gòu)造方法:

  • JFrame():創(chuàng)建無標題的窗口對象;
  • JFrame(String s):創(chuàng)建一個標題名是字符串s的窗口對象。

JFrame類的其他常用方法:

  • setBounds(int x,int y,int width,int height):參數(shù)x,y指定窗口出現(xiàn)在屏幕的位置;參數(shù)width,height指定窗口的寬度和高度。單位是像素。
  • setSize(int width,int height):設(shè)置窗口的大小,參數(shù)width和height指定窗口的寬度和高度,單位是像素。
  • setBackground(Color c):以參數(shù) c設(shè)置窗口的背景顏色。
  • setVisible(boolean b):參數(shù)b設(shè)置窗口是可見或不可見。JFrame默認是不可見的。
  • pack():用緊湊方式顯示窗口。如果不使用該方法,窗口初始出現(xiàn)時可能看不到窗口中的組件,當用戶調(diào)整窗口的大小時,可能才能看到這些組件。
  • setTitle(String name):以參數(shù)name設(shè)置窗口的名字。
  • getTitle():獲取窗口的名字。
  • setResiable(boolean m):設(shè)置當前窗口是否可調(diào)整大小(默認可調(diào)整大小)。

Swing里的容器都可以添加組件,除了JPanel及其子類(JApplet)之外,其他的Swing容器不允許把組件直接加入。其他容器添加組件有兩種方法:
一種是用getContentPane()方法獲得內(nèi)容面板,再將組件加入。例如,例5.1程序中的代碼:

  mw.getContentPane().add(button);


該代碼的意義是獲得容器的內(nèi)容面板,并將按鈕button添加到這個內(nèi)容面板中。
另一種是建立一個JPanel對象的中間容器,把組件添加到這個容器中,再用setContentPane()把這個容器置為內(nèi)容面板。例如,代碼:

  JPanel contentPane = new JPanel();  …  mw.setContentPane(contentPane);


以上代碼把contentPane置成內(nèi)容面板。

【例】一個用JFrame類創(chuàng)建窗口的Java應(yīng)用程序。窗口只有一個按鈕。

import javax.swing.*;public class Example5_1{  public static void main(String args[]){    JFrame mw = new JFrame(“我的第一個窗口”);    mw.setSize(250,200);    JButton button = new JButton(“我是一個按鈕”);    mw.getContentPane().add(button);    mw.setVisible(true);  }}

用Swing 編寫GUI程序時,通常不直接用JFrame創(chuàng)建窗口對象,而用JFrame派生的子類創(chuàng)建窗口對象,在子類中可以加入窗口的特定要求和特別的內(nèi)容等。

【例】定義JFrame派生的子類MyWindowDemo創(chuàng)建JFrame窗口。類MyWindowDemo的構(gòu)造方法有五個參數(shù):窗口的標題名,加放窗口的組件,窗口的背景顏色以及窗口的高度和寬度。在主方法中,利用類MyWindowDemo創(chuàng)建兩個類似的窗口。

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Example5_2{  public static MyWindowDemo mw1;  public static MyWindowDemo mw2;  public static void main(String args[]){    JButton static butt1 = new JButton(“我是一個按鈕”);    String name1 = “我的第一個窗口”;    String name2 = “我的第二個窗口”;    mw1 = new MyWindowDemo(name1,butt1,Color.blue,350,450);    mw1.setVisible(true);    JButton butt2 = new JButton(“我是另一個按鈕”);    mw2 = new MyWindowDemo(name2,butt2,Color.magenta,300,400);    mw2.setVisible(true);  }}class MyWindowDemo extends JFrame{  public MyWindowDemo(String name,JButton button,Color c,int w,int h){    super();    setTitle(name);    setSize(w,h);    Container con = getContentPane();    con.add(button);    con.setBackground(c);  }}

顯示顏色由java.awt包的Color類管理,在Color類中預(yù)定了一些常用的顏色,參見表11-3。JFrame類的部分常用方法參見下表。
Color 類中定義的常用顏色

JFrame 類的部分常用方法

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 察隅县| 吉林省| 大兴区| 新田县| 合山市| 长海县| 睢宁县| 濉溪县| 仙游县| 黄山市| 日照市| 嘉黎县| 安溪县| 枝江市| 丘北县| 宝鸡市| 潼关县| 隆子县| 罗平县| 南澳县| 凭祥市| 永清县| 绥江县| 夏津县| 河津市| 云龙县| 屏南县| 唐河县| 秀山| 临沂市| 谢通门县| 子长县| 仁怀市| 木里| 岳普湖县| 沽源县| 香格里拉县| 梅州市| 嘉善县| 和硕县| 兰考县|