Java背景绘制分包和界面变形的一些问题

来源:互联网 发布:双休的网络销售靠谱吗 编辑:程序博客网 时间:2024/06/10 02:35

         白老师,我有一个问题。我现在创建了一个固定大小的JFrame,在里面添加了东西。但是会有一个问题,当我把这个项目拿到不同的操作系统上,比如从Win7XP就会出现变形的问题。我找了一下原因,应该 是由于两个系统下JFrame的边框的大小不一样造成的。请问这种情况怎么解决?

还有就是关于界面背景的问题,在JPanel上可以重写

/**

 * 覆盖父类paint方法

 * <p>绘制背景</p>

 *

 * @param g Graphics对象

 */

public void paint (Graphics g){

super.paint(g);

g.drawImage(Icons.BG.getImage(), 0, 0, null);

super.paintChildren(g);

}

就能很好的实现,可是JFrame上不行啊,就算是绘制成功,因为如果添加东西到JFrame,那么contentPane会覆盖掉背景啊 ?怎么解决啊,一般我们是怎么添加背景的啊?

还有就是关于项目分包的问题,因为项目大了有很多类,应该怎么建包啊,比如我有一个界面类,里面会添加一些功能组件,这些组件,panel都是属于这个界面类的,我是把这些和这个界面类装在一起还是单独建一个包放他们啊,但是我本来是有一个View包装所有界面的。还有就是一些图片,音乐这些又该怎么放啊?

谢了哈,白老师,就是上面的三个问题

 

JPanel中要去重写patinComponent()方法,绘制背景一般都在这里面去绘制的。这样就不会覆盖其他组件了,关于不同系统上JFrame边框大小不一样你可以在JFrame里面放一个JPanel,以后所有的组件都加在这个JPanel里面。设置大小的话就先获得JFrame的四个边框大小,然后再加上一个你自己设置的大小

this.getInsets().top  //上边框

this.getInsets().left //左边框

this.getInsets().right //右边框

this.getInsets().bottom //下边框

 

关于建包的问题,一般界面类都会放在一个包里面,比如view,这里面包含窗口类、面板类

如果是做游戏会涉及到角色类,会建一个角色包,比如role

一些处理音乐、文件的类会放在util包里面

如果还有javabean对象会放到bean包里面

原创粉丝点击