我只是使用此代码导入图像时遇到问题。图像应存放在哪里?我认为它必须位于源文件夹中的文件夹中,在这种情况下称为ImageIcon,但我不确定...感谢任何帮助过的人!
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
class Surface extends JPanel {
private Image mshi;
public Surface() {
loadImage();
setSurfaceSize();
}
private void loadImage() {
mshi = new ImageIcon("mushrooms.jpg").getImage();
}
private void setSurfaceSize() {
Dimension d = new Dimension();
d.width = mshi.getWidth(null);
d.height = mshi.getHeight(null);
setPreferredSize(d);
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(mshi, 1, 1, null);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
public class DisplayImage extends JFrame {
public DisplayImage() {
initUI();
}
private void initUI() {
setTitle("Mushrooms");
add(new Surface());
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
DisplayImage ex = new DisplayImage();
ex.setVisible(true);
}
});
}
}
答案 0 :(得分:0)
您是否尝试将图像放在与类文件Surface相同的目录中?
答案 1 :(得分:0)
好的,抱歉,我没有看过DisplayImage类。
我认为最好的方法是为Surface创建一个单独的类文件。 写入Surface类文件,带有参数的构造函数。参数将是图像路径。如果您想要更改图像,将很容易。
这样的事情:
public class Surface extends JPanel {
private Image mshi;
public Surface(String imagePath) {
mshi = new ImageIcon(imagePath).getImage();
setSurfaceSize();
}
private void setSurfaceSize() {
Dimension d = new Dimension();
d.width = mshi.getWidth(null);
d.height = mshi.getHeight(null);
setPreferredSize(d);
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(mshi, 1, 1, null);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
你不需要编写方法loadImage(),它可能会在你的类中使用,因为它是私有的,只做一件简单的事情。
关于项目目录的结构,可以这样做
项目目录\ src
项目目录\ src \ Surface.class
项目目录\ src \ DisplayImage.class
项目目录\ images
项目目录\ images \ mushrooms.jpg
Ps:对不起我的英文,它仍在建设中。