我试图在此代码中更改图片。我尝试调用public函数,并在我想调用它们时能够加载。我想知道如何执行此操作,这样就可以将它们放入if语句,while循环或case语句中。
在这段代码中,我调用了一个公共函数:
测试chill = new chill();
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class test extends Component {
BufferedImage img;
BufferedImage img1;
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
g.drawImage(img1,0,0,null);
}
public test() {
try {
img = ImageIO.read(new File("smile.png"));
} catch (IOException e) {
}
}
public chill() {
try {
img1 = ImageIO.read(new File("chill.png"));
} catch (IOException e) {
}
}
//img1= ImageIO.read(new File("chill.png"));
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(null), img.getHeight(null));
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Load Image Sample");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
test chill = new chill();
f.add(new test());
f.pack();
f.setVisible(true);
}
}
我在这方面做错了什么?如果您有解释此问题的网站,请在此处发布!多谢了!
这个程序是我做的有趣的事情。
最佳答案
首先,课程应以大写字母开头(按照惯例)。第二
test chill = new chill();
应该
test chill = new test();
因为
chill
是变量名,而test
是类。另外,那是一个构造函数(不是方法)。并且,在chill
类中不能有test
构造函数。// public chill() {
// try {
// img1 = ImageIO.read(new File("chill.png"));
// } catch (IOException e) {
// }
// }
您可以有一个
chill
方法public void chill() {
try {
img1 = ImageIO.read(new File("chill.png"));
} catch (IOException e) {
}
}
然后
new test().chill();
会工作。