首页上一页 1 下一页尾页 1 条记录 1/1页
《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;
}
在包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;
}