Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法调用不工作_Java_Swing_Methods - Fatal编程技术网

Java 方法调用不工作

Java 方法调用不工作,java,swing,methods,Java,Swing,Methods,Game.java调用board.java中存在的函数getLabel()。运行Game.java时,在终端中出现错误“找不到符号方法getLabel()”。我无法纠正它 Game.java import java.awt.*; import javax.swing.*; import javax.swing.JLabel; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class G

Game.java调用board.java中存在的函数
getLabel()。运行Game.java时,在终端中出现错误“找不到符号方法
getLabel()
”。我无法纠正它

Game.java

import java.awt.*;
import javax.swing.*;
import javax.swing.JLabel;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Game {

    private board b;
    private bishop bis1;
    private JLabel q;

    public static void main(String[] args) {
        Game f = new Game();
        f.start();
    }

    public void start() {
        b = new board();
        bis1 = new bishop();
        bis1.setLocation(0, 0);
        ImageIcon m = bis1.getImage();
        q = b.getLabel();

        q.addMouseListener(new Mouselist());
        b.squares[0][0].add(q);
    }

    class Mouselist implements MouseListener {

        public void mouseClicked(MouseEvent e) {
            //k.setIcon(null);
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }

        // mouse entered the JLabel increment count and display it
        public void mouseEntered(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }

        public void mouseExited(MouseEvent e) {
            b.squares[1][2].add(new JLabel(new ImageIcon("rook.png")));
        }

        // mouse was presssed (cliked and released)
        // increment counter and display it
        public void mousePressed(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));

        }

        public void mouseReleased(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }
    }
}
import javax.swing.*;
import java.awt.*;
import javax.swing.JLabel;

public class board {

    public JFrame frame;
    public JPanel squares[][] = new JPanel[3][3];
    private JLabel sqk = new JLabel(new ImageIcon("knight.png"));

    public board() {
        frame = new JFrame("Simplified Chess");
        frame.setSize(1200, 800);
        frame.setLayout(new GridLayout(2, 3));

        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 3; j++) {
                squares[i][j] = new JPanel();

                if ((i + j) % 2 == 0) {
                    squares[i][j].setBackground(Color.black);
                } else {
                    squares[i][j].setBackground(Color.white);
                }
                frame.add(squares[i][j]);
            }
        }

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public JLabel getLabel() {
        return sqk;
    }
}
board.java

import java.awt.*;
import javax.swing.*;
import javax.swing.JLabel;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Game {

    private board b;
    private bishop bis1;
    private JLabel q;

    public static void main(String[] args) {
        Game f = new Game();
        f.start();
    }

    public void start() {
        b = new board();
        bis1 = new bishop();
        bis1.setLocation(0, 0);
        ImageIcon m = bis1.getImage();
        q = b.getLabel();

        q.addMouseListener(new Mouselist());
        b.squares[0][0].add(q);
    }

    class Mouselist implements MouseListener {

        public void mouseClicked(MouseEvent e) {
            //k.setIcon(null);
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }

        // mouse entered the JLabel increment count and display it
        public void mouseEntered(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }

        public void mouseExited(MouseEvent e) {
            b.squares[1][2].add(new JLabel(new ImageIcon("rook.png")));
        }

        // mouse was presssed (cliked and released)
        // increment counter and display it
        public void mousePressed(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));

        }

        public void mouseReleased(MouseEvent e) {
            b.squares[1][1].add(new JLabel(new ImageIcon("rook.png")));
        }
    }
}
import javax.swing.*;
import java.awt.*;
import javax.swing.JLabel;

public class board {

    public JFrame frame;
    public JPanel squares[][] = new JPanel[3][3];
    private JLabel sqk = new JLabel(new ImageIcon("knight.png"));

    public board() {
        frame = new JFrame("Simplified Chess");
        frame.setSize(1200, 800);
        frame.setLayout(new GridLayout(2, 3));

        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 3; j++) {
                squares[i][j] = new JPanel();

                if ((i + j) % 2 == 0) {
                    squares[i][j].setBackground(Color.black);
                } else {
                    squares[i][j].setBackground(Color.white);
                }
                frame.add(squares[i][j]);
            }
        }

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public JLabel getLabel() {
        return sqk;
    }
}
import javax.swing.*;
导入java.awt.*;
导入javax.swing.JLabel;
公共班级委员会{
公共框架;
公共JPanel广场[][]=新JPanel[3][3];
private JLabel sqk=新JLabel(新的图像图标(“knight.png”);
公共委员会(){
框架=新的JFrame(“简化国际象棋”);
框架设置尺寸(1200800);
frame.setLayout(新的GridLayout(2,3));
对于(int i=0;i<2;i++){
对于(int j=0;j<3;j++){
正方形[i][j]=新的JPanel();
如果((i+j)%2==0){
方格[i][j].退根(颜色.黑色);
}否则{
方格[i][j].退根地(颜色.白色);
}
加上(方格[i][j]);
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
公共JLabel getLabel(){
返回sqk;
}
}

这里可能有什么问题?

很可能您刚刚添加了
getLabel()
方法,还没有重新编译
board.java

我将board.java和Game.java的代码都加载到我的IDE中。我在第24行(q=b.getLabel())上没有得到错误。(我确实收到一些编译错误,因为您没有提供bishop.java,但这与您的问题无关。)

第24行是您得到错误的地方吗?如果是这样的话,你能把3个实际的.java文件通过电子邮件发给我吗


顺便说一句,如上所述,尽管这与您的问题无关,但将类名大写(如Board和Bishop)是非常标准的做法,我强烈建议您这样做。这将使其他Java程序员更容易阅读您的代码。

Java编码惯例说类应该以大写字母开头,因此应该是
Board
,而不是
Board
。可能对您的问题没有帮助,但作为一般说明。您是否重新编译了board.java?=)没有这种名为
call
的方法,另请参见此和。您发布的代码将编译(当有关bishop的位被注释掉时)。