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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流

發布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GUI(圖形用戶管理)

一 GUI的組件和容器

Component(所有可顯示的元素):

1:它的直接功能子類---Button:對應事件:java.awt.event.ActionEvent;

處理函數:public void actionPerformed(ActionEvent e)

---TextFiled:對應事件:java.awt.event.ActionEvent;

處理函數:public void actionPerformed(ActionEvent e)

---Label

---TextArea

---List

---Scrollbar

---TextComponent

2:Container(容納其他Component)

(1)Window(自由停放的頂級窗口)---Frame:

---Frame(String str)

---setBounds(int x, int y, int w, int h)

---setSize(int width, int height)

---setLocation(int x, int y)

---setBackground(Color c)

---setVisible(boolean b)

---setTitle(String name)

---setResizable(boolean b)

(2)Panel(在頂級窗口內部的小窗口)

---Applet

---Panel()

---Panel(LayoutManager layout)

---setBounds(int x, int y, int w, int h)

---setResizable(boolean b)

---setVisible(boolean b)

---setTitle(String name)

---setBackground(Color c)

---setLocation(int x, int y)

---setSize(int width, int height)

二 布局管理器

1: ?原理 ---管理Component在Container中的布局,不必直接設置Component位置和大小

---每個Container都有一個布局管理器對象,當容器需要對某個組件進行定位活判斷其尺寸大小,進行定位時,就會調用其對應的布局管理器,調用Container的setLayout改變對象

2: ?5中布局管理

1.FlowLayout(Panle默認布局管理器)

---基本原理:逐行定位,從左到右,從上到下,一行排滿后拍下一行;不改變大小,按照原尺寸顯示;可設置:間距,行距,對齊方式;默認居中對齊

---方法 (1) FlowLayout();居中對齊,水平,垂直間距默認5

(2)FlowLayout(FlowLayout.LEFT);左對齊,默認5

(3)FlowLayout(FlowLayout.RIGHT,20,40);

2.BorderLayout(Frame默認布局管理器)---EAST

---WEST

---SOUTH

---NORTH

---CENTER

3.GridLayout(表格是布局)---把空間劃分成網格,每個格子大小相等,組件被添加到單元格中,左右,上下

4.CardLayout

5.GridBagLayout

三 GUI事件

1:事件處理原理:

---事件源(框架,控件)

---事件對象(鍵盤,鼠標,)

---監聽器對象

---監聽器

---目標代碼

2:控件事件:用于獲取事件發生時控件的狀態,然后把我們的操作,返回到指定控件

---ActionEvent

---ActionListener

3:鼠標事件

(1)有哪些鼠標事件:

---mouseClicked(MouseEvent e)

---mouseEntered(MouseEvent e)

---mouseExited(MouseEvent e)

---mousePressed(MouseEvent e)

---mouseReleased(MouseEvent e)

(2)鼠標事件添加:

---給誰添加:Component(組件添加)

---添加的是什么:MouseListener:鼠標事件監聽對象

---怎么添加:c.addMouseListener(MouseListener l)

---添加以后咱么辦:調用MouseListener類里面的方法,處理對應的鼠標事件

(3)事件類體系:MouseListener()接口-->MouseAdapter()類(空實現)-->我們的處理類(我們就不用實現所有的方法)

4:Window事件

5:鍵盤事件

各個事件的區別:

1:對控件進行操作的時候,用控件時間(涉及控件邢臺的改變)

2:對框架/窗口進行操作的時候,窗口事件

3:涉及繪圖,內容改變的時候,用鼠標/鍵盤事件

4:各個事件有一定的功能重合,怎么用自己選擇

四 GUI內部類:就是直接在一個類的內部直接聲明的類(和普通類聲明方法一樣,沒有任何區別)

作用:可以直接訪問包裝內的成員變量和方法,因為內部類直接包含了外部類的引用

好處:清晰的組織代碼結構,邏輯更好,防止被其他類非法訪問

使用時機:這個類就是為外部類服務的,不需要或者不允許別的類進行訪問的時候

-----------------------------------------------

IO流

一:IO流的基本原理:

1:作用:讀寫數據

2:描述主體對象:當前程序(就是流所在的代碼文件)

3:操作的對象:數據(計算機中所有的東西都是以001101的二進制碼存在)

4:IO處理:轉成字符串輸出,轉成字符串打印到紙上:輸出流,打印流

5:效率處理:緩存流

二:流的分類:

1:輸入/輸出流---區別:是把外部數據導入當前的程序,還是把當前程序的數據,導入到外部設備

2:字符/字節流---區別:每次讀寫數據塊大小的區別;直接流就是每次讀寫8位,需要按照字符系統(2個直接,Unicode-16)重新拼裝成字符字符流,就是直接按照字符系統指定的大小讀寫數據塊,少了一個拼裝過程

3:原始流/處理流---區別:直接用于在程序和設備中直接讀取數據的流;和不能在程序和設備中讀取數據,只能按照目的處理前者從原始設備和程序中讀出的數據的流

三:4個原始流功能與方法:

1:InputStream(理由:一次讀取一個字節)/8

(1):int read() throws IOException:讀到末尾返回-1

(2):read(byte[] buffer)

(3):read(byte[] buffer,int offset,int length)

(4):close()

(5):skip()

2:OutputStream(一次寫入一個字節)/8

(1):write(int b) throws exception

(2):write(byte[] b)

(3):write(byte[] b, int off, int len)

(4):flush()

(5):close()

3:Reader(一次讀取一個字符)/16

(1):read()

(2):read(char[] cbuf)

(3):read(char[] cbuf, int offset, int length)

(4):close()

(5):skip()

4:Writer(一次寫入一個字符)/16

(1):write(int c)

(2):write(char cbuf)

(3):write(char[] cbuf, int offset, int length)

(4):write(String string)

(5):write(String string, int offset,int length)

(6):flush()

(7):close()

四: 具體的功能類

1:File(硬盤)

2:Memory Array

3:Memory String

4:Pipe(不同線程間)

5:Object(序列化)

總結

以上是生活随笔為你收集整理的java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流的全部內容,希望文章能夠幫你解決所遇到的問題。

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