面板容器、標籤及按鈕

2020-12-13 米粒教育

面板容器

在窗體應用程式的實際編程中,窗體界面比較複雜,容納的組件也非常多,一些組件在窗體中顯示不出來。在這種情況下,需要把窗體按功能劃分為幾個區域,在每個區域進行組件的添加和管理。Swing提供了JPanel和JscrollPane兩種面板容器,用於解決上面的問題。

面板容器和JFrame窗體一樣,也是繼承Container類,在JFrame窗體中可以添加面板容器。

JPanel面板容器

在JPanel面板容器中可以添加任何組件,JPanel面板容器也是繼承Container類,因此Container類的添加組件的方法都可以使用。

案例1建立一個窗體類,在窗體類中使用網格布局將窗體空間均勻分成四個網格,在每個網格中添加JPanel面板容器,在JPanel面板容器中添加多個JLabel組件。

在項目PCoreUnit13下新建panel包,在pane包內新建JFramePanelTest類。代碼如下:

packagepanel;import java.awt.GridLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.SwingConstants;import javax.swing.WindowConstants;/*** @ClassName: JFramePanelTest* @Description: Swing程序設計(面板容器)案例1* @author 編程訓練營* @date**/publicclass JFramePanelTest { /** * @Title: main * @Description: Java程序入口main方法 * @param@param args 參數 * @return void 返回類型 * @throws */publicstaticvoid main(String[] args) { // 實例化JFrame對象 JFrame frame = new JFrame("JPanel示例程序"); // 設置窗體為2行1列的網格布局 frame.setLayout(new GridLayout(2,1,30,30)); // 初始化JPanel面板 JPanel panel1 = new JPanel(new GridLayout(2,1,10,10)); JPanel panel2 = new JPanel(new GridLayout(2,1,10,10)); // 添加JLable組件到panel1 JLabel label1 = new JLabel("這是第一個組件"); label1.setHorizontalAlignment(SwingConstants.CENTER); JLabel label2 = new JLabel("這是第二個組件"); label2.setHorizontalAlignment(SwingConstants.CENTER); panel1.add(label1); panel1.add(label2); // 添加JLable組件到panel2 JLabel label3 = new JLabel("這是第三個組件"); label3.setHorizontalAlignment(SwingConstants.CENTER); JLabel label4 = new JLabel("這是第四個組件"); label4.setHorizontalAlignment(SwingConstants.CENTER); panel2.add(label3); panel2.add(label4); // 添加JPanel到窗體 frame.add(panel1); frame.add(panel2); // 設置窗口的寬度和高度 frame.setSize(500,500); // 窗口居中 frame.setLocationRelativeTo(null); // 設置窗口可見 frame.setVisible(true); //設置窗口關閉方式,窗口關閉程序退出 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); }}

JScrollPane面板容器

當窗體容納的組件較多或組件內容比較多時,窗體可顯示的部分不能完全顯示全部組件或組件內容。在這種情況下,就可以使用JScrollPane面板,JScrollPane面板帶有兩個滾動條,一個是水平滾動條,一個是縱向滾動條,用戶使用滾動條可以滾動窗體水平或縱向的顯示內容。

JScrollPane面板容器只能容納一個組件,這種問題也非常容易解決,可以把窗體要放置的組件放置到一個JPanel面板容器中,然後再把JPanel面板容器放置到JScrollPane面板容器中,最後把JScrollPane面板容器添加到窗體中。

在pane包內新建JFrameScrollPanelTest類。代碼如下:

importjava.awt.Dimension;import java.awt.FlowLayout;import javax.swing.JScrollPane;* @ClassName: JFrameScrollPanelTest* @Description: Swing程序設計(面板容器)案例2publicclass JFrameScrollPanelTest { JFrame frame = new JFrame("JScrollPane示例程序"); // 設置窗體尺寸 // 實例化JPanel對象 JPanel jpanel = new JPanel(); // 設置jpanel尺寸,尺寸和窗體尺寸相同 jpanel.setPreferredSize(new Dimension(500, 500)); // 設置jpanel為流式布局 jpanel.setLayout(new FlowLayout(FlowLayout.LEFT,20,20)); // 使用循環添加JLabel組件for( int i = 1; i < 100; i++ ) { JLabel label = new JLabel("這是第" + i + "個組件"); jpanel.add(label); } // 實例化JScrollPane對象 JScrollPane scrollpanel = new JScrollPane(jpanel); // 將scrollpanel組件添加到窗體 frame.add(scrollpanel);

使用JScrollPane時,需要注意下面幾項:

JScrollPane只能添加一個組件,該組件可以是JPanel面板容器,當然也可以是其它組件;調用JScrollPane的構造方法實例化對象時,需要傳入JPanel面板容器的實例對象或其它組件的實例對象,傳入的實例對象需要調用setPreferredSize方法來設置JPanel面板容器或組件的尺寸;需要將JScrollPane的實例對象添加到窗體中。標籤組件

標籤組件在窗體中顯示為一個不能編輯的文字區域。該組件只能用於在窗體中輸出文本內容,而不能獲取用戶的文本輸入。它可用於在窗體中顯示必要的文字信息。

標籤組件由JLabel類定義,JLabel類的父類是Jcomponent類。JLabel類定義了多個構造方法,JLabel類常用的構造方法說明如下:

public JLabel()

該方法創建一個JLabel實例對象,該實例沒有圖像,標題為空字符串。

public JLabel(Icon image)

該方法創建一個帶圖標的實例對象。

public JLabel(String text)

該方法創建一個帶文本的實例對象。

public JLabel(String text, Icon icon, int horizontalAlignment)

該方法創建具有指定文本、圖像和水平對齊方式的JLabel實例對象。

JLabel類常用的方法說明如下:

void setText(String text)

該方法用於設置標籤的文本。

String getText()

該方法返回標籤的文本。

void setIcon(Icon icon)

該方法用於設置標籤顯示的圖標。

void setHorizontalAlignment(int alignment)

該方法設置標籤文本的水平對齊方式(例如:居中、兩邊對齊等方式)。參數alignment可以是下列常量值之一:LEFT、CENTER、RIGHT、LEADING。

上面的常量都在WindowConstants類中定義,WindowConstants類在javax.swing包內。

標籤組件在顯示文本的同時,也可以在文本左側顯示一個圖標,圖標可以使用一個指定的圖片文件來創建。javax.swing.ImageIcon類實現了Icon接口,ImageIcon類的主要構造方法說明如下:

public ImageIcon()

該方法創建一個未初始化的圖像圖標。

public ImageIcon(byte[] imageData)

該方法從包含支持的圖像格式(如GIF、JPEG、PNG)的圖像文件讀取的字節數組中創建圖像圖標。

public ImageIcon(String filename, String description)

該方法從指定的文件創建圖像圖標。

public ImageIcon(URL location)

該方法從指定的URL創建圖像圖標。

案例1:創建一個窗體,在窗體中添加一個帶圖標和文字的標籤組件。

在demo包內創建JFrameTest2類。代碼如下:

packagedemo;import java.awt.Font;import javax.swing.Icon;import javax.swing.ImageIcon;* @ClassName: JFrameTest2* @Description: Swing程序設計(標籤組件與圖標)案例1publicclass JFrameTest2 { JFrame frame = new JFrame("圖片標籤示例程序"); // 創建一個標籤組件 JLabel label = new JLabel("這是一個帶圖片的標籤"); // 設置標籤文本的內容居中顯示 label.setHorizontalAlignment(SwingConstants.CENTER); // 設置標籤文本的字體和字號 Font font = new Font("宋體", Font.PLAIN, 25); label.setFont(font); // 設置標籤組件的圖標 Icon icon = new ImageIcon("./img/favorite.png"); label.setIcon(icon); // 將label組件添加到容器 frame.add(label);

在JFrameTest2程序中,使用ImageIcon類來加載favorite.png圖片文件,favorite.png圖片文件在PCoreUnit13項目的img目錄下,圖片加載成功後,調用label對象的setIcon()方法設置ImageIcon實例對象。

按鈕組件

按鈕組件允許用戶通過單擊來執行操作。按鈕組件即可以單獨顯示文本,也可以顯示文本和圖標,當按鈕被單擊時,它的外觀應該發生變化,看起來像是被按下,然後釋放。

按鈕組件由JButton類定義,JButton類的父類是Jcomponent類。JButton類定義了多個構造方法。

JButton類常用的構造方法說明如下:

public JButton()

該方法創建一個Jbutton按鈕,該實例沒有圖標,也沒有文字。

public JButton(Icon icon)

該方法創建一個帶圖標的按鈕。

public JButton(String text)

該方法創建一個帶文本的按鈕。

public JButton(String text, Icon icon)

該方法創建帶有初始文本和圖標的按鈕。

JButton類常用的方法說明如下:

該方法用於設置按鈕的圖標。

void setEnabled(boolean b)

該方法用於啟用(或禁用)按鈕,按鈕被禁用戶,不接收任何事件,按鈕顏色是灰色,表示在禁用狀態。參數b為true表示啟用按鈕,參數b為false表示禁用按鈕。

void doClick()

該方法模擬用戶單擊按鈕事件,以編程方式執行引發按鈕「單擊」事件。

void addActionListener(ActionListener l)

該方法添加動作監聽器到按鈕,用於接收發自此按鈕的動作事件。當用戶在此按鈕上按下或釋放滑鼠時,發生動作事件。如果 l 為 null,則不拋出任何異常,也不執行任何動作。

ActionListener是接收各類組件動作事件的監聽器接口。如果組件需要處理組件發出的動作事件,需要新建一個類來實現此接口,當組件發生動作事件時,調用該對象的 actionPerformed方法來處理動作事件。

響應按鈕事件

如果程序需要處理按鈕的動作事件,需要調用addActionListener方法將實現ActionListener接口的類添加到按鈕對象,ActionListener接口的actionPerformed方法用於處理組件發出的動作事件,該方法需要傳入ActionEvent類的實例對象。

相關焦點

  • html中按鈕標籤詳細介紹
    本篇將為大家介紹的是html中按鈕標籤<button>的用法,有興趣的朋友可以看看!在html中,<button>標籤也是很常用的,經常用來在頁面中添加按鈕。「button」作為英文單詞就有「按鈕」的意思,接下我們就一起來看看它的具體用法吧!
  • 讓控制面板回歸開始按鈕右鍵菜單
    在Windows10創意者更新中,微軟進一步削弱了傳統的控制面板在Win10中的地位,開始按鈕的右鍵菜單裡,UWP版設置替代控制面板悄然上位,很多習慣使用傳統的控制面板的用戶對此感到很不適應,尤其是控制面板中的一些功能UWP版設置並不能替代,有鑑於此,05月16日,IT之家發布了,但是有些讀者喜歡簡潔乾淨的桌面右鍵菜單
  • 液壓貨梯按鈕面板上的急停開關突然壞了怎麼換,手把手教你
    1、液壓貨梯按鈕面板上的急停開關突然壞了怎麼換,手把手教你按鈕面板2、我不在現場,就拿一個按鈕面板的配件來講解吧。按鈕面板4、打開按鈕面板的面板,可以看到內部結構,一個主板,兩個按鈕,一個電鎖,還多一個孔就是安裝急停開關的。
  • Protopie詳解 — 容器層
    容器層是什麼 容器層(container)是一個在開發當中非常常見的詞。容器層可以裝載其他物體,類似編組,但是容器層本身也具有圖層的屬性。當將物體放進容器層時,他們會一併移動,類似將內容編了組,這裡需要注意的是,容器層的位置坐標以容器層的描點來決定,但是容器層內的物體的坐標不再是物體在畫布上的坐標,而是他在容器層內的坐標,所以,當你移動容器層時,可以看到容器層的坐標在移動
  • Win10操作中心面板下方有一些矩形按鈕,單擊可快速執行某些操作
    上回書說到,小夥伴們可以調整Windows向用戶發送消息的通知方式,具體操作步驟如下:STEP 1單擊【開始】按鈕,然後在打開的【開始】菜單中選擇【設置】命令。如果不希望Windows向用戶發送任何通知消息,可以單擊任務欄通知區域中的【操作中心】圖標,然後在打開的面板中單擊【免打擾時間】按鈕;或右擊【操作中心】圖標,然後在彈出的菜單中選擇【打開免打擾時間】命令,如圖所示。禁止系統向用戶發送任何消息以後,【操作中心】圖標的外觀將變化顯示 。
  • 設計師應該如何設計「關閉」按鈕?
    第二個問題,[x]是如何作為通用的關閉按鈕逐漸成為用戶界面設計中的一個標準元素的?早期Windows系統中的關閉窗口的按鈕並非[x],一直到windows95的時候,[x]才真正出現在windows系統的界面上,見下圖。這個時候的關閉按鈕和最大化、最小化一同出現在窗口的右上角上,這一經典的按鈕組合就此定型。
  • 23批次鋁製品容器標籤標識不合格 一款樂扣樂扣上榜
    來源:新京報網原標題:23批次鋁製品及容器標籤標識不合格,一款樂扣樂扣上榜上海市市場監督管理局抽檢結果顯示,不合格產品商標涉及誠一日用、CDREA、樂扣樂扣、HOT STUFF/好仕、好思特等。新京報訊(記者 張潔)近期,上海市市場監督管理局對上海市生產、銷售的食品接觸用鋁製品及容器進行了監督抽查。抽查結果顯示,本次抽查了40批次產品,其中不合格產品23批次,不合格率達57.5%。其中,不合格產品商標涉及誠一日用、樂扣樂扣、好思特等。
  • 急停按鈕工作原理_急停按鈕電氣符號_急停按鈕型號介紹
    急停按鈕工作原理_急停按鈕電氣符號_急停按鈕型號介紹 佚名 發表於 2017-08-11 14:49:11   急停按鈕也可以稱為「緊急停止按鈕」,業內簡稱急停按鈕
  • ...用鋁製品及容器標籤標識不合格 商標(標稱)涉及好思特、DAISO等
    中國質量新聞網訊 據上海市市場監督管理局網站2019年12月6日消息,近期,上海市市場監督管理局對本市生產、銷售的食品接觸用鋁製品及容器質量進行了監督抽查。本次抽查了40批次產品,經檢驗,不合格23批次。
  • 詳細學習HTML的常用標籤:超級連接標籤A
    · innerHTML 設置或獲取位於對象起始和結束標籤內的 HTML。· innerText 設置或獲取位於對象起始和結束標籤內的文本。· isContentEditable 獲取表明用戶是否可編輯對象內容的值。· isDisabled 獲取表明用戶是否可與該對象交互的值。
  • IE瀏覽器是使用人數最多的瀏覽器,如何設置啟用標籤頁分組
    今天介紹IE瀏覽器是使用人數最多的瀏覽器,如何設置啟用標籤頁分組。小夥伴們都知道,IE瀏覽器是現在使用人數最多的瀏覽器,在Windows 7作業系統安裝時默認安裝。為了使瀏覽器可以更好地為我們服務,小夥伴們可以根據自己的使用習慣對瀏覽器的參數進行一些設置。
  • Edge 88 Beta發布:休眠標籤頁、PDF注釋等
    休眠標籤頁  Sleeping Tabs 建立在 Chromium 的「Freezing」技術之上。Freezing 會暫停標籤頁的腳本定時器,以最大限度地減少資源使用。  睡眠選項卡允許不活動的後臺標籤頁 "進入睡眠",在設定的時間後釋放系統資源。
  • 按鈕開關的作用_按鈕開關型號含義
    按鈕開關的作用   按鈕開關通常用作短時接通或斷開小電流控制電路的開關,用於控制電路中發出啟動或停止等指令,通過接觸器、繼電器等斷開主電路。   按鈕開關是一種結構簡單,應用十分廣泛的主令電器。在電氣自動控制電路中,用於手動發出控制信號以控制接觸器、繼電器、電磁起動器等。按鈕開關的安裝和接線是很重要的   應急按鈕開關的作用:   1、緊急按鈕開關是在緊急情況下,需要幫助時觸動的開關。它是用來控制2次線路的總開關。
  • HTML 標籤解釋大全
    標籤:input type=password說明:創建與 INPUT type=text 控制項類似的單行文本輸入控制項,不過其中並不顯示用戶輸入的內容。標籤:input type=radio說明:創建單選鈕控制項。標籤:input type=reset說明:創建一個按鈕,該按鈕單擊後將重置表單控制項為其默認值。
  • 工業級標籤印表機「擎天柱」
    手把設計更加便於攜帶    便攜性還體現在它的操作面板上。作為一個行業級產品就需要擁有極高的專業性,愛普生LW-Z900針對電力電信行業設計了豐富的行業熱鍵,無需費勁查找,在操作面板上就可以一鍵操作。這讓您可以輕鬆創建適合粘貼區域大小的標籤(右)    除了一些行業熱鍵外,在下方的操作面板上,愛普生LW-Z900將很多功能按鈕直接平鋪在機身上,比如常用的創建連號標籤、創建條形碼標籤,還有標籤尺寸長短與文本方向,用戶操作起來更加簡單便捷,無需在線上軟體內進行操作,節省不少工作時間。
  • 文本標籤「程式設計師培養之路第二天」
    第一節、文本標籤段落標籤:<p></p>,段落標籤用來描述一段文字標題標籤:<h1> - <h6>,標題標籤用來描述一個標題, 標題標籤總共有六個級別,由高到低分別是:h1、h2、h3、h4、h5、h6。
  • NET開發-WebForm中Web控制項是伺服器控制項,按鈕、標籤控制項如何使用
    Button控制項Button控制項是按鈕控制項,單擊可以執行事件代碼,將按鈕需要實現的功能編寫在事件代碼中。如下:<asp:Button ID="Button1" runat="server" Text="Button" />對於按鈕控制項,在Visual Studio的視圖界面中,可以雙擊該按鈕自動生成事件代碼,如: