HOWTO · Java
在 Java 中建立影象圖示
本教程演示瞭如何在 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 和電子郵件圖示的按鈕。
輸出: