日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI

發布時間:2025/3/20 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎到我的簡書查看我的文集

前言:

GUI是圖形用戶界面,在Java中,圖形用戶界面我們用GUI表示,而GUI的完整英文為: Graphical User Interface(圖形用戶接口), 所謂圖形用戶界面就是以圖形的方式來顯示你計算機的操作界面, 我們計算機中操作的界面就是 我們Java中常說的圖形用戶界面, 這樣的操作簡單明了.

CLI的英文為Command Line User Interface, 是命令行用戶接口, 命令行, 這就是我們程序員常常熟悉的, 常見的Dos命令行操作, 這些常用命令式需要記住的, CLI的操作就不那么直觀了.

在Java中GUI提供了對象在 java.awt 和 javax.swing 兩個包中

在早年中, Java.awt為抽象窗口工具包, 英文為 Abstract Window ToolKit, 需要調用本地的系統方法來實現功能需求,屬于重量級的控件.

而在awt的基礎上,創建了一套圖形界面系統, 從而提供了更多的組件, 而且完全是由Java實現的, 增強了移植性, 屬于輕量級的控件. 有自己的顯示效果, 顯示自己的形狀, 平臺要求低了, 輕量級和體統嵌入的比較淺.

繼承關系

Button按鈕,Label標簽,Checkbox復選框,TextComponent文本組件,TextArea文本區域,TextField文本框.

組件里面還能放入組件,在Java中我們叫容器.

window 窗體, Panel 面板

Frame小窗口,Dialog對話框,FileDialog文件對話框

GUI 布局

Flow 流式布局

掃雷的格式布局

布局管理

常見的布局管理器:

流式布局管理: FlowLayout, 是從左到右的排列, 是Panel默認的布局管理.

邊界布局: 東南西北,中, 是Frame默認的布局管理

網格布局管理: GridLayout

卡片布局管理: CardLayout

網格包布局管理: GridBagLayout

GUI 簡單的小窗體

java.awt 包含用于創建用戶界面和繪制圖形圖像的所有類.

java.awt 類 Component

java.lang.Object

-> java.awt.Component

所有已實現的接口:

ImageObserver, MenuContainer, Serializable

component 是一個具有圖形表示能力的對象.

java.awt 類 Frame

java.lang.Object

-> java.awt.Component

-> java.awt Container

-> java.awt.Window

-> java.awt.Frame

實現的接口:

ImageObserver, MenuContainer, Serializable, Accessible

直接已知的子類:

JFrame

Frame是帶有標題和邊框的頂層窗口.

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class FrameDemo {

public static void main(String[] args) {

//1,創建一個窗體。Frame

Frame f = new Frame("my frame");

//2, 對窗體進行基本設置。

f.setSize(500, 400);

f.setLocation(400, 200);

//設置布局。

f.setLayout(new FlowLayout());

//給窗體添加組件。

Button but = new Button("my button");

//加入一個文本框組件。

TextField tf = new TextField(40);

//將組件添加到窗體中。

f.add(tf);

f.add(but);

//1,在按鈕上添加所需的監聽器。

but.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

System.out.println("按鈕被觸發了....."+e);

System.exit(0);

}

});

f.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.out.println("window closing");

System.exit(0);

}

@Override

public void windowOpened(WindowEvent e) {

System.out.println("孔雀開屏!window open");

}

});

but.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(e.getClickCount() == 2){

System.out.println("mouse double click");

}

}

});

tf.addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

//1,如何獲取錄入的內容。通過鍵盤事件對象獲取。

//char key = e.getKeyChar();

//int code = e.getKeyCode();

//System.out.println(code+"...."+KeyEvent.getKeyText(code));

//int code = e.getKeyCode();

//if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){

//System.out.println("必須是0-9數字");

//e.consume();//直接取消默認處理方式。

//}

if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){

System.out.println("ctrl+enter run");

}

}

});

//3,讓窗體顯示。

f.setVisible(true);

System.out.println("over");

}

}

事件監聽機制

事件源-組件

事件 - Event

監聽器 - Listener

事件處理

Button

java.awt

classButton

java.lang.Object

-> java.awt.Component

-> java.awt.Button

監聽事件:

addActionListener(ActionListener?l)

添加指定的動作偵聽器以從此按鈕接收動作事件。

MouseListener

public interface MouseListener extends EventListener

用于在組件上接收“有趣”鼠標事件(按,釋放,單擊,輸入和退出)的偵聽器界面。

方法的詳細信息:

mouseClicked

void mouseClicked(MouseEvent e)

在組件上單擊鼠標按鈕時調用

mousePressed

void mousePressed(MouseEvent e)

在組件上按下鼠標時調用

mouseReleased

void mouseReleased(MouseEvent e)

在組件上釋放鼠標時調用

mouseEntered

void mouseEntered(MouseEvent e)

當鼠標進入組件時調用

mouseExited

void mouseExited(MouseEvent e)

當鼠標退出組件時調用

圖形化界面的工具

//1,獲取路徑。通過文本框對象完成。

String str_dir = jTextField1.getText();

//2,將字符串路徑封裝成File對象。

File dir = new File(str_dir);

//判斷。

if(dir.exists()&&dir.isDirectory()){

//清空文本區域。

jTextArea1.setText("");

//3,獲取文件名稱列表。

String[] names = dir.list();

for(String name :names){

//4,將名字顯示到文本區域。

jTextArea1.append(name+LINE_SEPARATOR);

}

}

public class JFileChooser extends JComponent implements Accessible

事件監聽機制流程:

監聽器 - 將監聽器注冊到事件源

事件源 - 組件 (外部動作)

產生事件對象 - 將事件對象傳給事件處理方式

菜單繼承

MenuComponent

MenuBar,MenuItem,Menu

達叔小生:往后余生,唯獨有你

You and me, we are family !

90后帥氣小伙,良好的開發習慣;獨立思考的能力;主動并且善于溝通

簡書博客: 達叔小生

https://www.jianshu.com/u/c785ece603d1

結語

下面我將繼續對 其他知識 深入講解 ,有興趣可以繼續關注

小禮物走一走 or 點贊

總結

以上是生活随笔為你收集整理的java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。