首页上一页 1 下一页尾页 1 条记录 1/1页
《Java开发实战宝典》第22章
发表在Java图书答疑
2010-06-10
是否精华
是
否
版块置顶:
是
否
在《Java开发实战宝典》第22章,《22.12订购商品信息管理模块设计》即窗体CaigouDingdanFrame,有这样一个方法:
public void spmcComboBoxPosition(int currentRow) {
tb_spinfo.editCellAt(currentRow, 0); // 设置可编辑单元格为当前行第1列,表格列索引从0开始
Component comp = ((DefaultCellEditor) (tb_spinfo.getCellEditor(
currentRow, 0))).getComponent(); // 获得当前编辑单元格的组件
Rectangle rec = comp.getBounds(); // 获得组件的Rectangle对象
double x = rec.getX(); // 获得组件的横坐标位置
double y = rec.getY(); // 获得组件的纵坐标位置
double w = rec.getWidth(); // 获得组件的宽度
double h = rec.getHeight(); // 获得组件的高度
Rectangle rect = jScrollPane1.getBounds(); // 获得滚动窗格的Rectangle对象
double x1 = rect.getX(); // 获得滚动窗格的横坐标位置
double y1 = rect.getY(); // 获得滚动窗格的纵坐标位置
cmb_spmc.setBounds((int) (x + x1), (int) (y + y1) + 21, (int) w + 1,
(int) h + 2); // 设置组合框的位置
tb_spinfo.removeEditor(); // 移除表格编辑器
}
有疑问的地方是: cmb_spmc.setBounds((int) (x + x1), (int) (y + y1) + 21, (int) w + 1,
(int) h + 2);
我怎么才能确定组合框cmb_spmc就在这个位置,为什么+21、+1、+2.我还是不明白。
public void spmcComboBoxPosition(int currentRow) {
tb_spinfo.editCellAt(currentRow, 0); // 设置可编辑单元格为当前行第1列,表格列索引从0开始
Component comp = ((DefaultCellEditor) (tb_spinfo.getCellEditor(
currentRow, 0))).getComponent(); // 获得当前编辑单元格的组件
Rectangle rec = comp.getBounds(); // 获得组件的Rectangle对象
double x = rec.getX(); // 获得组件的横坐标位置
double y = rec.getY(); // 获得组件的纵坐标位置
double w = rec.getWidth(); // 获得组件的宽度
double h = rec.getHeight(); // 获得组件的高度
Rectangle rect = jScrollPane1.getBounds(); // 获得滚动窗格的Rectangle对象
double x1 = rect.getX(); // 获得滚动窗格的横坐标位置
double y1 = rect.getY(); // 获得滚动窗格的纵坐标位置
cmb_spmc.setBounds((int) (x + x1), (int) (y + y1) + 21, (int) w + 1,
(int) h + 2); // 设置组合框的位置
tb_spinfo.removeEditor(); // 移除表格编辑器
}
有疑问的地方是: cmb_spmc.setBounds((int) (x + x1), (int) (y + y1) + 21, (int) w + 1,
(int) h + 2);
我怎么才能确定组合框cmb_spmc就在这个位置,为什么+21、+1、+2.我还是不明白。