问题一:为解决java JFrame边框老土问题;
开始查找资料,首先找到的是一个IBM专家,也是SUNONE之一,他重写了JFrame类得到IFrame的Jar包,但是其效果还是不是特别理想;
自己思考,其实自己可以把JFrame的边框去掉,自己在重写一个JPanel,然后把标题框当做组件,并且重绘背景,就可以得到和QQ游戏相似的界面。
问题二:这就涉及到窗体操作问题,比如如何关闭窗口,缩小窗口。
通过查JavaAPI的源代码,发现我们通常设置的默认关闭行为,其实SUN是这样实现的。
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
也就是说我们通常设置的默认关闭行为EXIT_ON_CLOSE,其实就是简单的调用系统的System.exit(0);窗体关闭问题解决。
至于窗口拖动等,网上找到下面一篇日志:
在使用Jframe的时候,普遍都会有标题栏,还有最小化,最大化,关闭按纽的,还要实现拖动窗体的功能。
这样的话,对我们实现自定义样式的窗体是很有影响的,
1)
jFrame.setUndecorated(true);
//
2)
只要给按纽添加MouseListener,
在mouseClick中的调用
jFrame.setExtendedState(jFrame.ICONIFIED); //最小化
if(jFrame.getExtendedState() != jFrame.MAXIMIZED_BOTH)
jFrame.setExtendedState(jFrame.MAXIMIZED_BOTH);
else
jFrame.setExtendedState(jFrame.NORMAL);
//
System.exit(0);
//
3)
只要给窗体中的某个组件添加如下代码就行了:
Point loc = null;
背景图,可能会重写paint方法,不能在paint方法中调用setDragable()
问题四:当我们在试图在JPanel上添加JPanel时,上面的JPanel由于其背景会覆盖下面一层的JPanel?
解决方法,设置上一层面板的背景为透明;
问题五:找棋子图片,因为希望不遮挡方形区域。
找PNG格式棋子