如何在Java中的文件中调用public函数?

How to call public function within the file in Java?

我尝试更改此代码中的图片。我尝试调用 public 函数,并且在我想调用它们时能够加载。我想知道如何做到这一点,这样我就可以将它们放在 if 语句、while 循环或 case 语句中。

在这段代码中,我调用了一个 public 函数:

test 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);
    }
}

我做错了什么?如果您有解释它的网站,请 post 放在这里!非常感谢!

这个程序是我为了好玩而做的。

首先,class 应该以大写字母开头(按照惯例)。第二

test chill = new chill();

应该是

test chill = new test();

因为chill是变量名,而test是class。此外,这是一个构造函数(不是方法)。而且,你不能在 test class.

中有一个 chill 构造函数
// 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();

会起作用。