在 Java 中创建图像图标
Java 中的 Swing 库具有类 ImageIcon,可用于创建图像图标。本教程将演示如何在 Java 中制作不同的图像图标。
在 Java 中使用 Swing.ImageIcon
绘制图像图标
绘制图像图标意味着从给定图像创建图像图标。
例子:
package delftstack;
import java.awt.Container;
import javax.swing.GroupLayout;
import java.awt.EventQueue;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import java.awt.Graphics;
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 java.awt.Container;
import javax.swing.GroupLayout;
import java.awt.EventQueue;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
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 和电子邮件图标的按钮。
输出:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。