Hôm nay tôi gặp sự cố .. Chương trình của tôi tạo lưới 8x8 và hiển thị điều phối khi tôi nhấp vào JButton
.addMouseListener cho JPanel
NHƯNG tôi từ chối sử dụng JButton
và tôi cần phải đi cho JPanel
.. Nhưng addMouseListener
của tôi không được làm việc vì vậy tôi không biết làm thế nào là nó có thể để sửa chữa mà tôi đang tìm kiếm kể từ 4h .....
package coordboutons;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CoordBoutons extends JFrame {
CoordBoutons() {
super("GridLayout");
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container contenant = getContentPane();
contenant.setLayout(new GridLayout(8, 8));
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
contenant.add(new CaseEchiquier(i, j));
pack();
setVisible(true);
}
**class CaseEchiquier extends JPanel** {
private int lin, col;
CaseEchiquier(int i, int j) {
lin = i;
col = j;
setPreferredSize(new Dimension(80, 75));
setBackground((i + j) % 2 == 0 ? Color.WHITE : Color.GRAY);
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println((char)('a' + col) + "" + (8 - lin));
}
});
}
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
CoordBoutons coordBoutons = new CoordBoutons();
}
}
tôi có thể thiếu một cái gì đó ở đây nhưng 'ActionListener' không là một 'MouseListener' – MadProgrammer
Bạn có nghĩa là' addActionListener' không hoạt động. Đó là vì bạn không thể đăng ký 'JPanel' với loại người nghe này – Reimeus
bạn đang cố gắng thêm người phối ngẫu vào bảng của mình phải không? nhưng mã của bạn là actionListener, không có phương thức listlistener trong JPanel. và tôi nghĩ rằng nó là một ý tưởng tồi để có 64 newMouseListeners, bạn chỉ cần một cho tất cả 64 tấm. do đó, thêm một mouselistener như một tham số trong CaseEchiquier của bạn (int i, int j, MouseListener m) –