已有101人关注
《java 从入门到精通(第一版)》第二十八章
发表在Java图书答疑 2010-10-22
是否精华
版块置顶:
在该书的28章是一个进销存管理系统
在包com.lzw中类MenuBar 有这样一个方法
//创建内部窗体的方法使用反射技术获取内部窗体的构造方法
private JInternalFrame createIFrame(JMenuItem item,Class clazz){
Constructor constructor=clazz.getConstructors()[0];
JInternalFrame iFrame=iFrames.get(item);
try{
if(iFrame==null || iFrame.isClosed()){
iFrame=(JInternalFrame)constructor.newInstance(new Object[] {});
iFrames.put(item, iFrame);
iFrame.setFrameIcon(item.getIcon());
iFrame.setLocation(nextFrameX, nextFrameY);
int frameH=iFrame.getPreferredSize().height;
int panelH=iFrame.getContentPane().getPreferredSize().height;
int fSpacing=frameH-panelH;
nextFrameX += fSpacing;
nextFrameY +=fSpacing;
if(nextFrameY + iFrame.getWidth() >desktopPane.getWidth()){
nextFrameY=0;
}
if(nextFrameX + iFrame.getHeight()>desktopPane.getHeight()){
nextFrameX=0;
}
desktopPane.add(iFrame);
iFrame.setResizable(false);
iFrame.setMaximizable(false);
iFrame.setVisible(true);

}
iFrame.setSelected(true);
stateLabel.setText(iFrame.getTitle());
iFrame.addInternalFrameListener(new InternalFrameAdapter(){
public void internalFrameActivated(InternalFrameEvent e){
super.internalFrameActivated(e);
JInternalFrame frame=e.getInternalFrame();
stateLabel.setText(frame.getTitle());
}
public void internalFrameDeactivated(InternalFrameEvent e){
stateLabel.setText("没有选择窗体");
}
});
}catch(Exception e){
e.printStackTrace();
}
return iFrame;
其中的这段代码什么意思:
int frameH=iFrame.getPreferredSize().height;
int panelH=iFrame.getContentPane().getPreferredSize().height;
int fSpacing=frameH-panelH;
nextFrameX += fSpacing;
nextFrameY +=fSpacing;
if(nextFrameY + iFrame.getWidth() >desktopPane.getWidth()){
nextFrameY=0;
}
if(nextFrameX + iFrame.getHeight()>desktopPane.getHeight()){
nextFrameX=0;
}
分享到:
精彩评论 1
绿草_mrkj
学分:0 LV1
2010-10-25
沙发
代码“int frameH=iFrame.getPreferredSize().height;”表示获取iFrame组件所在位置的纵坐标。
代码“int panelH=iFrame.getContentPane().getPreferredSize().height;”表示获取iFrame所在位置的纵坐标。
代码“iFrame.getWidth() ”表示iFrame组件的宽度,
代码“iFrame.getHeight()”表示iFrame组件的高度。
其他的算术运算符读者应该了解。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照