首頁  >  文章  >  Java  >  詳解如何使用Java寫出圖形化的窗口

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

高洛峰
高洛峰原創
2017-01-17 15:56:541402瀏覽

視窗是GUI程式設計的基礎,小型應用程式或圖形介面的應用程式的視覺元件都放在視窗中,在GUI中,視窗是使用者螢幕的一部分,起著在螢幕中一個小螢幕的作用。有以下三種視窗:
Applet視窗:Applet類別管理這個窗口,當應用程式啟動時,由系統建立和處理;
框架視窗(JFrame):這是通常意義上的窗口,它支援視窗週邊的框架、標題欄,以及最小化、最大化和關閉按鈕;
一種無邊框視窗(JWindow):沒有標題欄,沒有框架,只是一個空的矩形。

用Swing中的JFrame類別或它的子類別所建立的物件就是JFrame視窗。

JFrame類別的主要建構方法:

JFrame():建立無標題的視窗物件;

JFrame(String s):建立一個標題名稱是字串s的視窗物件。

JFrame類別的其他常用方法:

setBounds(int x,int y,int width,int height):參數x,y指定視窗出現在螢幕的位置;參數width,height指定視窗的寬度和高度。單位是像素。

setSize(int width,int height):設定視窗的大小,參數width和height指定視窗的寬度和高度,單位是像素。

setBackground(Color c):以參數 c設定視窗的背景顏色。

setVisible(boolean b):參數b設定視窗是可見或不可見。 JFrame預設是不可見的。

pack():以緊湊方式顯示視窗。如果不使用該方法,視窗初始出現時可能看不到視窗中的元件,當使用者調整視窗的大小時,可能才能看到這些元件。

setTitle(String name):以參數name設定視窗的名字。

getTitle():取得視窗的名字。

setResiable(boolean m):設定目前視窗是否可調整大小(預設可調整大小)。

Swing裡的容器都可以加入元件,除了JPanel及其子類別(JApplet)之外,其他的Swing容器不允許把元件直接加入。其他容器新增元件有兩種方法:
一種是用getContentPane()方法取得內容面板,再將元件加入。例如,範例5.1程式中的程式碼:

mw.getContentPane().add(button);

這個程式碼的意義是取得容器的內容面板,並將按鈕button加入到這個內容面板中。
另一種是建立一個JPanel物件的中間容器,把元件加入這個容器中,再用setContentPane()把這個容器置為內容面板。例如,代碼:

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

以上程式碼把contentPane置成內容面板。

【例】一個用JFrame類別建立視窗的Java應用程式。視窗只有一個按鈕。

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創建窗口對象,而用JFrame派生的子類創建窗口對象,在子類中可以加入窗口的特定要求和特別的內容等。

【例】定義JFrame派生的子類別MyWindowDemo建立JFrame視窗。類別MyWindowDemo的建構方法有五個參數:視窗的標題名,加放視窗的元件,視窗的背景顏色以及視窗的高度和寬度。在主方法中,利用類別MyWindowDemo建立兩個類似的視窗。

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類中預定了一些常用的顏色,參見表11-3。 JFrame類別的部分常用方法請參考下表。
Color 類別中定義的常用顏色

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

JFrame 類別的部分常用方法

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

更多詳解如何使用Java編寫圖形化的中文視窗相關文章請關注PHPPHPPH網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn