在 Java 中建立影象圖示

Sheeraz Gul 2024年2月15日
  1. 在 Java 中使用 Swing.ImageIcon 繪製影象圖示
  2. 在 Java 中使用 Swing.ImageIcon 建立影象圖示按鈕
在 Java 中建立影象圖示

Java 中的 Swing 庫具有類 ImageIcon,可用於建立影象圖示。本教程將演示如何在 Java 中製作不同的影象圖示。

在 Java 中使用 Swing.ImageIcon 繪製影象圖示

繪製影象圖示意味著從給定影象建立影象圖示。

例子:

package delftstack;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;

class DrawingPanel extends JPanel {
  private ImageIcon img_icon;

  public DrawingPanel() {
    load_Image();
    init_Panel();
  }

  private void load_Image() {
    img_icon = new ImageIcon("delftstack.jpg");
  }

  private void init_Panel() {
    int img_width = img_icon.getIconWidth();
    int img_height = img_icon.getIconHeight();
    setPreferredSize(new Dimension(img_width, img_height));
  }

  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    img_icon.paintIcon(this, g, 0, 0);
  }
}

public class Image_Icon extends JFrame {
  public Image_Icon() {
    init_User_Inter();
  }

  private void init_User_Inter() {
    DrawingPanel drawing1 = new DrawingPanel();

    createLayout(drawing1);

    setTitle("Image Icon");
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  private void createLayout(JComponent... argument) {
    Container demo_pane = getContentPane();
    GroupLayout demo_gl = new GroupLayout(demo_pane);
    demo_pane.setLayout(demo_gl);

    demo_gl.setHorizontalGroup(demo_gl.createSequentialGroup().addComponent(argument[0]));

    demo_gl.setVerticalGroup(demo_gl.createParallelGroup().addComponent(argument[0]));

    pack();
  }

  public static void main(String[] args) {
    EventQueue.invokeLater(() -> {
      JFrame demo_img = new Image_Icon();
      demo_img.setVisible(true);
    });
  }
}

上面的程式碼嘗試載入 delftstack.jpg 影象並將其繪製為圖示。

輸出:

繪製圖示

在 Java 中使用 Swing.ImageIcon 建立影象圖示按鈕

圖片圖示主要用在按鈕上; 讓我們嘗試建立帶有影象圖示的按鈕。

例子:

package delftstack;

import static javax.swing.JFrame.EXIT_ON_CLOSE;

import java.awt.Container;
import java.awt.EventQueue;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;

public class Custom_Image_Icon extends JFrame {
  public Custom_Image_Icon() {
    init_User_Interface();
  }

  private void init_User_Interface() {
    ImageIcon Facebook_Icon = new ImageIcon("facebook.png");
    ImageIcon Twitter_Icon = new ImageIcon("twitter.png");
    ImageIcon Email_Icon = new ImageIcon("email.png");

    JButton Facebook_Btn = new JButton(Facebook_Icon);
    JButton Twitter_Btn = new JButton(Twitter_Icon);
    JButton Email_Btn = new JButton(Email_Icon);

    createLayout(Facebook_Btn, Twitter_Btn, Email_Btn);

    setTitle("Image Icons on Buttons");
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  private void createLayout(JComponent... argument) {
    Container Btn_Pane = getContentPane();
    GroupLayout demo_graphic = new GroupLayout(Btn_Pane);
    Btn_Pane.setLayout(demo_graphic);

    demo_graphic.setAutoCreateContainerGaps(true);
    demo_graphic.setAutoCreateGaps(true);

    demo_graphic.setHorizontalGroup(demo_graphic.createSequentialGroup()
                                        .addComponent(argument[0])
                                        .addComponent(argument[1])
                                        .addComponent(argument[2]));

    demo_graphic.setVerticalGroup(demo_graphic.createParallelGroup()
                                      .addComponent(argument[0])
                                      .addComponent(argument[1])
                                      .addComponent(argument[2]));

    demo_graphic.linkSize(argument[0], argument[1], argument[2]);
    pack();
  }

  public static void main(String[] args) {
    EventQueue.invokeLater(() -> {
      Custom_Image_Icon Btn_Icons = new Custom_Image_Icon();
      Btn_Icons.setVisible(true);
    });
  }
}

上面的程式碼建立了三個帶有 Facebook、Twitter 和電子郵件圖示的按鈕。

輸出:

按鈕圖示

作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - Java Image