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")));
}
}
}
board.java 여기 가능성이 잘못 무엇
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;
}
}
?
Java 코딩 규칙에 따르면 클래스는 대문자로 시작해야하므로 '보드'대신 '보드'여야합니다. 아마도 당신의 문제에 도움이되지 않을 것이지만, 일반적인 메모로. – nwinkler
board.java를 다시 컴파일 했습니까? =) – mcfinnigan
거기에 'call'이라는 이름의 메서드가 없습니다. – mKorbel