JPanel重绘问题

摆烂办不到 摆烂办不到 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
拼图游戏

原样是这个样子的


点击4ROwAndColumn之前是这样的

想要实现的功能是把三行拼图换成4行


点击之后成了这个样子

没有重绘,当我最小化窗口再恢复的时候就可以了,不知道原因,因为我已经在点击事件方法里面添加了重绘代码(repaint())了


部分代码如下
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {                                           

if(imagePanel12.getSonPanelNumbers() == 16) {
return;
}

imagePanel12.removePanels();

int[][] tempSequence = new int[][]{{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}, {12, 13, 14, 15}};
imagePanel12.setSequence(tempSequence);
imagePanel12.setSonPanelNumbers(16);
ImagePanel3[][] tempPanels = new ImagePanel3[4][4];

for(int i = 0; i < 4; i++) {
for(int j = 0; j < 4; j++) {
tempPanels[i][j] = new ImagePanel3(imagePanel12);
}// Of for
}// Of for

imagePanel12.setPanels(tempPanels);

((GridLayout) imagePanel12.getLayout()).setRows(4);
((GridLayout) imagePanel12.getLayout()).setColumns(4);
imagePanel12.setSonImage(imagePanel12.getCurrentImage());

imagePanel12.addPanels(tempPanels);

imagePanel12.sonPanelAddImage(imagePanel12.getImages());// 这个方法里面有针对16个子Panel的重绘代码

}
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
摆烂办不到
Java SE 62,620 成员 307,251 内容