在该
mousePiece方法中,他的意思是:chessPiece = null他是说如果JLabelchessPiece图像中有图像,则应将其更改为null?
我想你是故意的
mousePressed。通过使用
chessPiece = null,作者取消引用变量,因此分配给它的内容不再可通过is变量访问。
是
chessBoard.findComponentAt(e.getX(), e.getY())返回JPanel平方?
这取决于。
findComponentAt可以搜索当前容器及其任何子容器,直到在指定位置找到组件为止。技术上,作者忽略了触发事件的组件(应为
layeredPane),
chessBoard而是忽略了该组件。我怀疑他们正在这样做,因为如果使用
layeredPane它,它将返回
chessBoard。
该方法可以返回
JPanel,
JLabel甚至可以返回,
null但是考虑到组件布局的方式,这种方法的可能性较低。
最后,当组件c获得其父项时,谁是父项?
这取决于。根据我对代码的理解,我会说它返回了一块
JPanel底层代码
JLabel。
不得不说,虽然有更简单的方法可以达到相同的结果…



