已有101人关注
《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.我还是不明白。                      
分享到:
精彩评论 1
东北虎
学分:0 LV1
2010-06-11
沙发
您好,这种方式需要试探着才能确定组合框的位置。
这是一种方法,但是不是最好的方法。

最好的方法您可以参考书中628页“销售点订单管理”中的initTable方法 ,该方法使文本框随表格中活动单元格移动,这是最好的方法。
首页上一页 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经营性网站备案信息 营业执照