我正在尝试将图像添加到JLabel,但是遇到一个问题,即图像对于JLabel来说太大了,因此我正在寻找一种使图像自动缩放到JLabel大小的方法。
这是我调用GUImain类的代码主体:
public class Main
{
public static void main(String[] args)
{
int i = 0;
int t = 0;
int st = 0;
int h = 0;
Texts textObject = new Texts();
textObject.TextList();
Commands commandObject = new Commands();
commandObject.commands();
GUImain guiObject = new GUImain();
guiObject.displayGUI();
}
}
这是我的GUImain类的代码,由于我的代码中分配了对象,因此我将只包含一个图像按钮。
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JScrollBar;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
public class GUImain
{
private JFrame frame;
private JTextField textField;
private ImageIcon image1;
public void displayGUI()
{
this.frame.setVisible(true);
}
//Launch the application.
public static void main(String[] args)
{
GUImain window = new GUImain();
}
//Create the application.
public GUImain()
{
frame = new JFrame();
frame.setBounds(100, 100, 611, 471);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
...
JLabel lblHunger = new JLabel();
Image img2 = new ImageIcon(this.getClass().getResource("/Food.png")).getImage();
lblHunger.setIcon(new ImageIcon(img2));
lblHunger.setBounds(211, 58, 50, 50);
panel.add(lblHunger);
}
}
}
不要使用空布局!!!
Swing旨在与布局管理器一起使用。让每个组件确定其首选大小,然后根据布局管理器的规则让布局管理器确定组件的大小和位置。
可以使用Darry'ls Stretch Icon代替自定义绘画。图标将根据图标的可用空间进行绘制。
我遇到了一个问题,其中图像对于JLabel来说很大
只是重新阅读问题的那一部分。在这种情况下,您可能需要使用该Image.getScaledInstance(...)
方法将图像缩放到适当的大小。您可以使用常规的图标和适当的布局管理器。
我将能够使用哪种布局轻松选择尺寸以及放置对象的位置
您不应该选择组件的大小/位置。那是布局管理器的工作。阅读有关布局管理器的教程,然后选择一种适合您的要求(或布局管理器的组合)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句