天天看點

java圖形使用者界面縮小_java圖形使用者界面

Java圖形使用者界面

圖形使用者界面設計

JFrame類

标簽

布局管理器

圖形使用者界面設計

建立GUI元件的步驟:

設計元件,合理布局 —> 定義界面上的響應。

GUI支援的包

AWT包:包含有基本元件類,布局管理類,容器類和接口類。

Java.awt.

Swing包:AWT包的更新版本。

javax.swing。

GUI容器與元件

元件不能獨立的顯示,必須要在容器上。

Java的容器分為兩種:頂層容器和中間層容器。

頂層容器:可以獨立浮動于螢幕上,GUI必有。

JFrame:作為應用程式的主視窗;

JApplet:小程式視窗顯示;

JWindows:視窗。

中間層容器:不可獨立存在。

JPanel:面闆;

JScrollPane:滾動面闆。

JFrame類

一些基本設定如下代碼:

import java.awt.Color;//顔色類

import javax.swing.JFrame;//主視窗

public class Example {

public static void main(String[] args) {

//JFrame();預設的無标題資訊。

JFrame f = new JFrame("My windous");

//設定視窗的大小,以像素為機關。

f.setSize(300,200);

//先調用getContentPane獲得内容面闆,在設定背景顔色。

f.getContentPane().setBackground(Color.BLACK);

//設定視窗可見,預設不可見。

f.setVisible(true);

}

}

運作結果:

java圖形使用者界面縮小_java圖形使用者界面

标簽

标簽的構造方法:

import java.awt.Label //包的導入

JLabel();//建立空标簽

JLabel(String text);//建立名為text的标簽

JLabel(String text, int align);//建立名字為text的标簽,align是對其方式

align的值可以為:JLabel.RIGHT;JLabel.LEFT;JLabel.CENTER等。

添加标簽後需要再使用getContentPane()獲得主視窗的内容面闆再使用add添加對象。具體見本節代碼(如下):

Font類來設定字型;

用法:Font(String name, int style, int size);

三個參數name:字型,如,黑體,宋體等;

style:字型,系統提供三個整形常量來代表表示字型。

Font.PLAIN(正常體),Font.ITALIC(斜體),Font.BOLD(粗體)。

size:字号。

建立完字型對象之後,使用setFont(Font fn)方法調用。

Color類設定顔色

Color(int red, int green, int blue);

使用rgb組合。取值在0~255之間。也可以直接調用Color.red等來直接設定。

建立完對象之後,需要調用setForeground(Color c)方法來實作。

import java.awt.Color;

import java.awt.Font;

import java.awt.Label;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class Example {

public static void main(String[] args) {

JFrame f = new JFrame("My windous");

f.setSize(300,200);

f.getContentPane().setBackground(Color.RED);//先調用getContentPane獲得内容面闆,在設定背景顔色。

JLabel l1 = new JLabel("使用者名:", JLabel.RIGHT);

f.getContentPane().add(l1);//先擷取内容面闆,在将label内容添加在标簽中

Font f1 = new Font("黑體", Font.ITALIC, 30);//先建立一個對象

l1.setFont(f1);//在使用标簽對象調用

//設定标簽顔色

Color c = new Color(200, 100, 150);//0~255之間,三個參數組合,也可以使用Color.red等。

l1.setForeground(c);//由l1标簽調用setForeGround方法來設定标簽顔色

f.setVisible(true);

}

}

Button類:

JButton(); //建立一個無文字顯示的按鈕

JButton(String text);建立一個内容為text的按鈕。

JPanel j = new JPanel();//建立面闆

f.add(j);

//按鈕元件的運用

JButton b1 = new JButton("開機");

j.add(b1);

JPanel類

JPanel:中間容器,用于添加元件,這樣可以使得視窗上有多個元件。

先建立JPanel對象,在使用add()方法添加即可。

布局管理器

布局管理器用于設定元件的顯示方式和顯示位置。

有以下幾種布局方式:

FlowLayout:流式布局:

簡單的從左到右的順序布局。

//建立test類來繼承JFrame類

class test extends JFrame{

//定義5個要顯示的按鈕

JButton b1,b2,b3,b4,b5;

//在構造函數中添加按鈕的定義

public test() {

b1 = new JButton("按鈕1");

b2 = new JButton("按鈕2");

b3 = new JButton("按鈕3");

b4 = new JButton("按鈕4");

b5 = new JButton("按鈕5");

//定義一個流式布局

FlowLayout f = new FlowLayout();

//擷取視窗的内容面闆

Container c = this.getContentPane();

//設定流式布局方法

c.setLayout(f);

//添加按鈕

c.add(b1);

c.add(b2);

c.add(b3);

c.add(b4);

c.add(b5);

}

}

輸出結果:

java圖形使用者界面縮小_java圖形使用者界面

BorderLayout:邊界布局:

按照東南西北中位置來布局。

//建立test類來繼承JFrame類

class test extends JFrame{

//定義5個要顯示的按鈕

JButton b1,b2,b3,b4,b5;

//在構造函數中添加按鈕的定義

public test() {

b1 = new JButton("按鈕1");

b2 = new JButton("按鈕2");

b3 = new JButton("按鈕3");

b4 = new JButton("按鈕4");

b5 = new JButton("按鈕5");

//定義一個邊界布局

BorderLayout f = new BorderLayout();

//擷取視窗的内容面闆

Container c = this.getContentPane();

//設定流式布局方法

c.setLayout(f);

//添加按鈕,以及其相關位置:北南西東中。

c.add(b1,BorderLayout.NORTH);

c.add(b2,BorderLayout.SOUTH);

c.add(b3,BorderLayout.WEST);

c.add(b4,BorderLayout.EAST);

c.add(b5,BorderLayout.CENTER);

}

}

輸出結果:

java圖形使用者界面縮小_java圖形使用者界面

GridLayout:網格布局:

按照劃分的網格區域來布局。

//建立test類來繼承JFrame類

class test extends JFrame{

//定義5個要顯示的按鈕

JButton b1,b2,b3,b4,b5;

//在構造函數中添加按鈕的定義

public test() {

b1 = new JButton("按鈕1");

b2 = new JButton("按鈕2");

b3 = new JButton("按鈕3");

b4 = new JButton("按鈕4");

b5 = new JButton("按鈕5");

//定義一個網格布局,3行2列

GridLayout f = new GridLayout(3,2);

//擷取視窗的内容面闆

Container c = this.getContentPane();

//設定流式布局方法

c.setLayout(f);

//添加按鈕

c.add(b1);

c.add(b2);

c.add(b3);

c.add(b4);

c.add(b5);

}

}

輸出結果:

java圖形使用者界面縮小_java圖形使用者界面

還有其他布局:CardLayout:卡片布局;GridBagLayout:網格包布局;手工布局。

setLayout(null):

将界面布局管理的主動權交給使用者,由使用者自行設定坐标來實作。