Dzisiaj mam problem .. Mój program tworzy siatkę 8x8 i pokazuje współrzędne po kliknięciu na JButton
.addMouseListener for a JPanel
ale odmawiam użyć JButton
i muszę iść do JPanel
.. Ale mój addMouseListener
nie działa więc nie wiem, jak to jest możliwe, aby naprawić szukam od 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();
}
}
I może być brakuje czegoś tutaj, ale 'ActionListener' nie jest' MouseListener' – MadProgrammer
To znaczy, ' addActionListener' nie działa. To dlatego, że nie możesz zarejestrować 'JPanel' z tym typem odbiornika – Reimeus
twoja próba dodania myszki do twojego panelu w prawo? ale twój kod to actionListener, w JPanel nie ma metody actionlistener. i myślę, że to zły pomysł, aby mieć 64 noweMouseListenery, potrzebujesz tylko jednego na wszystkie 64 panele. więc dodaj myszkę jako parametr w swoim CaseEchiquier (int i, int j, MouseListener m) –