Java 如何在同一文件的其他类中调用方法?

Java 如何在同一文件的其他类中调用方法?,java,Java,我有一个GUI类和一个MouseClickListener。 监听器工作正常,我在面板上添加了一个新的鼠标点击对象-我现在可以打印出坐标了。 但是我想在单击时更改一些内容,所以我需要访问GUI类,但我找不到方法 我发现了一些类似的问题,但他们都缺少一些东西 public JPanel listener; boolean[][] farm; Rectangle[][] rects; int fSize; int wSize; int hCorr = 23; Color dead; Color a

我有一个GUI类和一个MouseClickListener。 监听器工作正常,我在面板上添加了一个新的鼠标点击对象-我现在可以打印出坐标了。 但是我想在单击时更改一些内容,所以我需要访问GUI类,但我找不到方法

我发现了一些类似的问题,但他们都缺少一些东西

public JPanel listener;

boolean[][] farm;
Rectangle[][] rects;
int fSize;
int wSize;
int hCorr = 23;
Color dead;
Color alive;

public GUIdiy(int fSize, int wSize, Color dead, Color alive){
    this.fSize = fSize;
    this.wSize = wSize;
    this.dead = dead;
    this.alive = alive;

    listener = new JPanel();
    add(listener);

    this.farm = new boolean[fSize][fSize];
    rects = new Rectangle[fSize][fSize];


    setTitle("");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(wSize, wSize);
    setBackground(Color.LIGHT_GRAY);

    setLocationRelativeTo(null);
    setVisible(true);

    MouseClick click = new MouseClick();
    listener.addMouseListener(click);
}

public void paint(Graphics g){

    int width = getSize().width;
    int height = getSize().height;
    fillFalse(fSize, farm);

    int spacing = 1;
    int x = 0;
    int y = hCorr;
    //int rSize = ((width < (height - hCorr)) ? width : (height- hCorr)) / this.farmSize;
    int rSize = ((width < (height - hCorr)) ? width : (height- hCorr)) / fSize;

    for (int i = 0; i < fSize; i++){
        for (int k = 0; k < fSize; k++){
            if (farm[i][k]){
                g.setColor(alive);
            } else {
                g.setColor(dead);
            }
            rects[i][k] = new Rectangle(x, y, rSize - spacing, rSize - spacing);
            //Rectangle a = new Rectangle(x, y, rSize, rSize);

            paintComponent(g, rects[i][k], g.getColor());

            x += rSize;
        }
        y += rSize;
        x = 0;
    }

}

protected void paintComponent(Graphics g, Rectangle rect, Color color) {
    //super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g2.setColor(color);
    g2.fill(rect);

}

public void fillFalse(int fSize, boolean [][] farm){
    for (int i = 0; i < fSize; i++){
        for (int j = 0; j < fSize; j++){
            farm[i][j] = false;
        }
    }
}


class MouseClick implements MouseListener {

@Override
public void mouseClicked(MouseEvent e) {
    int x = e.getX();
    int y = e.getY();

}

@Override
public void mousePressed(MouseEvent e) {

}

@Override
public void mouseReleased(MouseEvent e) {

}

@Override
public void mouseEntered(MouseEvent e) {

}

@Override
public void mouseExited(MouseEvent e) {

}
这是我的全部课程。我知道有一个捕鼠器,但我先用这种方法试过。单击鼠标时,我想访问GUIdiy类的变量。详细说明:我有这个布尔数组,并根据它的值绘制不同颜色的矩形。如果单击鼠标,我将根据fSize计算矩形的行和列,并反转数组中的布尔值。当它被重新油漆,然后显示另一种颜色

这比我想做的容易吗?我对JFrame完全陌生,它与迄今为止我用java所做的一切都不一样

假设您有两个类GUI和MouseClickListener

您希望在MouseClickListener中访问GUI的方法

您可以做的一件事是扩展MouseClickListener,即MouseClickListener扩展GUI

您可以将GUI类设置为抽象类

若GUI只有需要重写的方法,那个么将其设置为接口

您还可以使GUI类方法成为静态的


四者之间的实际实施将取决于您的具体要求。如果您可以显示一些迄今为止您一直在使用的代码,那就更好了。

您可以向我们显示您的代码,以及您作为一个应用程序所做的尝试吗?您可以将该方法设置为静态,这样您就可以通过其类名访问该方法。这是家庭作业吗??顺便说一句,这里还有一些建议:谢谢你,我更新了我的帖子,也许你有其他想法-但我会试试