Java Swing JLabel標籤的使用方法
阿新 • • 發佈:2020-01-07
1. 概述
官方JavaDocsApi: javax.swing.JLabel
JLabel,標籤。標籤主要用於展示 文字 或 圖片,也可以 同時顯示文字和圖片。
JLabel 的構造方法:
/* * 構造方法中的引數含義: * text: 標籤顯示的 文字 * image: 標籤顯示的 圖片 * horizontalAlignment: 標籤內容(在標籤內)的水平對其方式(豎直方向預設居中,可通過方法設定) */ JLabel() JLabel(String text) JLabel(String text,int horizontalAlignment) JLabel(Icon image) JLabel(Icon image,int horizontalAlignment) JLabel(String text,Icon image,int horizontalAlignment)
JLabel 的常用方法:
// 設定 文字 和 圖片 void setText(String text) void setIcon(Icon icon) // 設定文字相對於圖片的位置(文字預設在圖片右邊垂直居中) void setHorizontalTextPosition(int textPosition) void setVerticalTextPosition(int textPosition) // 設定標籤內容(在標籤內)的對其方式(預設左對齊並垂直居中) void setHorizontalAlignment(int alignment) void setVerticalAlignment(int alignment) // 設定圖片和文字之間的間隙 void setIconTextGap(int iconTextGap) /* * 下面的方法定義在 JComponent 基類中 */ // 設定文字的字型型別、樣式 和 大小 void setFont(Font font) // 設定字型顏色 void setForeground(Color fg) // 當滑鼠移動到元件上時顯示的提示文字 void setToolTipText(String text) // 設定元件的背景 void setBackground(Color bg) // 設定元件是否可見 void setVisible(boolean visible) // 設定元件是否為 不透明,JLabel預設為透明,設定為不透明後才能顯示背景 void setOpaque(boolean isOpaque) // 設定元件的 首選 大小 void setPreferredSize(Dimension preferredSize) // 設定元件的 最小 大小 void setMinimumSize(Dimension minimumSize) // 設定元件的 最大 大小 void setMaximumSize(Dimension maximumSize) /* * 上面的對齊引數具體的取值常量參考 DocsApi; * setXXX(...) 方法往往都對應著 getXXX() 方法。 */
顯示圖片時,Icon例項的建立(一般建立ImageIcon,ImageIcon 實現了 Icon):
ImageIcon 的構造方法:
// 使用 本地路徑 圖片建立 ImageIcon ImageIcon(String filename) // 使用 網路路徑 圖片建立 ImageIcon ImageIcon(URL location) // 使用圖片檔案的位元組陣列建立 ImageIcon ImageIcon(byte[] imageData) // 使用 java.awt.Image 例項建立 ImageIcon ImageIcon(java.awt.Image image)
java.awt.Image 例項的建立:
// 方法一: 通過 java.awt.Toolkit 工具類來讀取本地、網路 或 記憶體中 的 圖片(支援 GIF、JPEG 或 PNG) Image image = Toolkit.getDefaultToolkit().getImage(String filename); Image image = Toolkit.getDefaultToolkit().getImage(URL url); Image image = Toolkit.getDefaultToolkit().createImage(byte[] imageData); // 方法二: 通過 javax.imageio.ImageIO 工具類讀取本地、網路 或 記憶體中 的 圖片(BufferedImage 繼承自 Image) BufferedImage bufImage = ImageIO.read(File input); BufferedImage bufImage = ImageIO.read(URL input); BufferedImage bufImage = ImageIO.read(InputStream input); /* * PS_01: 圖片寬高: BufferedImage 可以通過 bufImage.getWidth() 和 bufImage.getHeight() 方法直接獲取圖片的寬高; * Image 獲取寬高需要另外傳入一個 ImageObserver 引數。 * * PS_02: 圖片裁剪: BufferedImage 通過 bufImage.getSubimage(int x,int y,int w,int h) 方法可以擷取圖片的 * 任意一部分,返回一個新的 BufferedImage 例項。 * * PS_03: 圖片縮放: Image 通過 image.getScaledInstance(int width,int height,int hints) 方法可以對圖片進行 * 縮放,返回新的一個 Image 例項。 */
2. 程式碼例項
package com.xiets.swing; import javax.swing.*; import java.awt.*; public class Main { public static void main(String[] args) { JFrame jf = new JFrame("測試視窗"); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 建立內容面板,預設使用流式佈局 JPanel panel = new JPanel(); /* * 只顯示文字 */ JLabel label01 = new JLabel(); label01.setText("Only Text"); label01.setFont(new Font(null,Font.PLAIN,25)); // 設定字型,null 表示使用預設字型 panel.add(label01); /* * 只顯示圖片 */ JLabel label02 = new JLabel(); label02.setIcon(new ImageIcon("demo01.jpg")); panel.add(label02); /* * 同時顯示文字和圖片 */ JLabel label03 = new JLabel(); label03.setText("文字和圖片"); label03.setIcon(new ImageIcon("demo02.jpg")); label03.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文字在圖片中心 label03.setVerticalTextPosition(SwingConstants.BOTTOM); // 垂直方向文字在圖片下方 panel.add(label03); jf.setContentPane(panel); jf.pack(); jf.setLocationRelativeTo(null); jf.setVisible(true); } }
結果展示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。