UDN-企业互联网技术人气社区

板块导航

浏览  : 3087
回复  : 10

关于表头页签切换事件,求教

[复制链接]
落丶云轩的头像 楼主
发表于 2015-4-2 09:19:18 | 显示全部楼层 |阅读模式
我现在想实现表头页签切换,然后去加载不同的模版,表头3个页签,页签1是卡片模型,页签2和3是列表模型,如何去实现页签切换事件呢
落丶云轩的头像 楼主
发表于 2015-5-4 09:30:21 | 显示全部楼层
ufxss01 发表于 2015-4-29 15:49
可以分享一下经验和成果代码不.....大家相互学习学习

package nc.ui.yx.common;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.List;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import nc.ui.pub.beans.UIPanel;
import nc.ui.pub.beans.UITabbedPane;
import nc.ui.pub.bill.BillCardBeforeEditListener;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pub.bill.BillEditEvent;
import nc.ui.pub.bill.BillEditListener;
import nc.ui.pub.bill.BillEditListener2;
import nc.ui.pub.bill.BillItemEvent;
import nc.ui.pub.bill.IBillItem;
import nc.ui.pubapp.uif2app.actions.AbstractBodyTableExtendAction;
import nc.ui.pubapp.uif2app.actions.BodyAddLineAction;
import nc.ui.pubapp.uif2app.actions.BodyDelLineAction;
import nc.ui.pubapp.uif2app.view.ShowUpableBillForm;
import nc.ui.yx.saproject.ace.actions.PrjAwardAddAction;
import nc.ui.yx.saproject.ace.actions.PrjCompAddAction;
import nc.ui.yx.saproject.ace.actions.PrjQueryAddAction;
import nc.ui.yx.saproject.ace.newhandler.PanelBodyEditHandler;
import nc.ui.yx.saproject.ace.newhandler.PanelBodyRowChangedHandler;
import nc.ui.yx.saproject.ace.newhandler.PanelHeadTailEditHandler;
import nc.ui.yx.saproject.ace.newhandler.TabPanelChangedHandler;
import nc.ui.yx.saproject.globalvar.MapChilds;

public class ShowUpableBillFormYX extends ShowUpableBillForm {
        private static final long serialVersionUID = 1L;
        private UIPanel ui_panel1;
        private UIPanel ui_panel2;
        private UIPanel ui_panel3;
       
        private BillCardPanel b_panel1;
        private BillCardPanel b_panel2;
        private BillCardPanel b_panel3;
        private BillCardPanel b_panel4;
        private BillCardPanel b_panel5;
       
        private UITabbedPane base;
       
        private MapChilds mapChilds;
        private PrjCompAddAction comp_action;
        private PrjAwardAddAction awd_action;
        private PrjQueryAddAction qry_action;
        private ShowUpableBillFormYX billform;
       
        @Override
        public void initUI() {
               
                super.initUI();
               
                Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
                b_panel1=new BillCardPanel();
                b_panel1.loadTemplet("1001ZZ100000000074YY"); //主表
                b_panel2=new BillCardPanel();
                b_panel2.loadTemplet("1001ZZ10000000007LXR"); //表体1
                b_panel3=new BillCardPanel();
                b_panel3.loadTemplet("1001ZZ10000000007M0S"); //表体2
                b_panel4=new BillCardPanel();
                b_panel4.loadTemplet("0001ZZ1000000000I06M"); //孙表1
                b_panel5=new BillCardPanel();
                b_panel5.loadTemplet("0001XX1000000000MFXR"); //孙表2
               
                this.setBodyActions(); //设置表体按钮
               
                ui_panel1=new UIPanel();
                ui_panel2=new UIPanel();
                ui_panel3=new UIPanel();
               
                ui_panel1.add(b_panel1);
                ui_panel2.add(b_panel2,BorderLayout.CENTER);
                ui_panel2.add(b_panel4,BorderLayout.CENTER);
                ui_panel3.add(b_panel3,BorderLayout.CENTER);
                ui_panel3.add(b_panel5,BorderLayout.CENTER);
               
                this.checkSizeAndSetSize(scrSize);
               
                base=new UITabbedPane(UITabbedPane.TOP);
                base.getSelectedComponent();
                base.addTab("表头信息",ui_panel1);
                base.addTab("经销商费用承担", ui_panel2);
                base.addTab("厂家承诺", ui_panel3);
                this.add(base);
                billform=this;
                addPanelEventListener();//添加监听
                initPanel(); //初始化画面编辑态
               
        }
       
        private void checkSizeAndSetSize(Dimension scrSize){
                if(scrSize.width>1600){
                        this.doSetSize(scrSize,9,10,1,1,1,3);
                }
                else if(scrSize.width==1600&&scrSize.height==900){
                        this.doSetSize(scrSize,1,1,17,30,15,48);
                }
                else if(scrSize.width==1366||scrSize.width==1360&&scrSize.height==768){
                        this.doSetSize(scrSize,1,1,17,30,7,24);
                }
                else if(scrSize.width<=1600&&scrSize.width>=1360){
                        this.doSetSize(scrSize,1,1,1,1,63,192);
                }
                else if(scrSize.width<1360&&scrSize.height>=768){
                        this.doSetSize(scrSize,1,1,17,30,15,48);
                }
                else if(scrSize.width<1360&&scrSize.height<768){
                        this.doSetSize(scrSize,1,1,17,30,25,96);
                }
        }
       
        private void doSetSize(Dimension scrSize,int a1,int a2,int b1,int b2,int c1,int c2){
                b_panel1.setPreferredSize(new Dimension(scrSize.width*a1/a2,scrSize.height*b1/b2));
                b_panel1.setVisible(true);
                b_panel2.setPreferredSize(new Dimension(scrSize.width*a1/a2,scrSize.height*c1/c2));
                b_panel2.setVisible(true);
                b_panel4.setPreferredSize(new Dimension(scrSize.width*a1/a2,scrSize.height*c1/c2));
                b_panel4.setVisible(true);
                b_panel3.setPreferredSize(new Dimension(scrSize.width*a1/a2,scrSize.height*c1/c2));
                b_panel3.setVisible(true);
                b_panel5.setPreferredSize(new Dimension(scrSize.width*a1/a2,scrSize.height*c1/c2));
                b_panel5.setVisible(true);
        }
       
        /**
         * 添加事件监听程序 by tcl
         */
        private void addPanelEventListener(){
                //为tablepanel增加页签切换事件
                base.addChangeListener(new ChangeListener() {
                        @Override
                        public void stateChanged(ChangeEvent e) {
                                new TabPanelChangedHandler().cardTabChanged(e,billform,getModel());
                        }
                });
               
                //为panel1添加表头表体编辑后事件
                b_panel1.addBillEditListenerHeadTail(new BillEditListener() {
                        @Override
                        public void bodyRowChange(BillEditEvent e) {}
                        @Override
                        public void afterEdit(BillEditEvent e) {
                                new PanelHeadTailEditHandler().afterEditEvent(e,billform);
                        }
                });
                b_panel1.setBillBeforeEditListenerHeadTail(new BillCardBeforeEditListener() {
                        @Override
                        public boolean beforeEdit(BillItemEvent e) {
                                new PanelHeadTailEditHandler().beforeEditEvent(e, billform);
                                return true;
                        }
                });
               
                //为panel2添加表体编辑后事件
                b_panel2.addEditListener(new BillEditListener() {
                        @Override
                        public void bodyRowChange(BillEditEvent e) {
                                new PanelBodyRowChangedHandler().card1RowChangedEvent(e,billform,getModel());
                        }
                        @Override
                        public void afterEdit(BillEditEvent e) {
                                new PanelBodyEditHandler().card2AfterEvent(e,billform);
                        }
                });
                //为panel2添加表体编辑前事件
                b_panel2.addBodyEditListener2(new BillEditListener2() {
                        @Override
                        public boolean beforeEdit(BillEditEvent e) {
                                new PanelBodyEditHandler().card2BeforeEvent(e,billform);
                                return true;
                        }
                });
               
                //为panel3添加表体编辑后事件
                b_panel3.addEditListener(new BillEditListener() {
                        @Override
                        public void bodyRowChange(BillEditEvent e) {
                                new PanelBodyRowChangedHandler().card2RowChangedEvent(e,billform,getModel());
                        }
                        @Override
                        public void afterEdit(BillEditEvent e) {
                                new PanelBodyEditHandler().card3AfterEvent(e,billform);
                        }
                });
                //为panel3添加表体编辑前事件
                b_panel3.addBodyEditListener2(new BillEditListener2() {
                        @Override
                        public boolean beforeEdit(BillEditEvent e) {
                                new PanelBodyEditHandler().card3BeforeEvent(e,billform);
                                return true;
                        }
                });
               
        }
       
        private void initPanel(){//初始化panel为非编辑态
                b_panel1.setEnabled(false);
                b_panel2.setEnabled(false);
                b_panel3.setEnabled(false);
                b_panel4.setEnabled(false);
                b_panel5.setEnabled(false);
        }
        /**
         * 为每个单表结构添加表体按钮组
         * @param list
         */
        private void setBodyActions(){
       
                BodyAddLineAction add_action=new BodyAddLineAction();
                BodyDelLineAction del_action1=new BodyDelLineAction();
                BodyDelLineAction del_action2=new BodyDelLineAction();
                BodyDelLineAction del_action3=new BodyDelLineAction();
                BodyDelLineAction del_action4=new BodyDelLineAction();
               
                List<AbstractBodyTableExtendAction> actions1=new ArrayList<AbstractBodyTableExtendAction>();
                actions1.add(comp_action);
                actions1.add(del_action1);
                this.setButtonLight(actions1, b_panel2);
                List<AbstractBodyTableExtendAction> actions2=new ArrayList<AbstractBodyTableExtendAction>();
                actions2.add(add_action);
                actions2.add(del_action2);
                this.setButtonLight(actions2, b_panel3);
                List<AbstractBodyTableExtendAction> actions3=new ArrayList<AbstractBodyTableExtendAction>();
                actions3.add(awd_action);
                actions3.add(del_action3);
                this.setButtonLight(actions3, b_panel4);
                List<AbstractBodyTableExtendAction> actions4=new ArrayList<AbstractBodyTableExtendAction>();
                actions4.add(qry_action);
                actions4.add(del_action4);
                this.setButtonLight(actions4, b_panel5);
        }
               
        private void setButtonLight(List<AbstractBodyTableExtendAction> actions,BillCardPanel panel){
                for(AbstractBodyTableExtendAction act : actions){
                        act.setEnabled(false);
                        act.setCardPanel(panel);
                }
                panel.addTabAction(IBillItem.BODY, actions);
        }
       
        public BillCardPanel getB_panel1() {
                return b_panel1;
               
        }

        public void setB_panel1(BillCardPanel b_panel1) {
                this.b_panel1 = b_panel1;
        }

        public BillCardPanel getB_panel2() {
                return b_panel2;
        }

        public void setB_panel2(BillCardPanel b_panel2) {
                this.b_panel2 = b_panel2;
        }

        public BillCardPanel getB_panel3() {
                return b_panel3;
        }

        public void setB_panel3(BillCardPanel b_panel3) {
                this.b_panel3 = b_panel3;
        }

        public BillCardPanel getB_panel4() {
                return b_panel4;
        }

        public void setB_panel4(BillCardPanel b_panel4) {
                this.b_panel4 = b_panel4;
        }

        public BillCardPanel getB_panel5() {
                return b_panel5;
        }

        public void setB_panel5(BillCardPanel b_panel5) {
                this.b_panel5 = b_panel5;
        }

        public MapChilds getMapChilds() {
                return mapChilds;
        }

        public void setMapChilds(MapChilds mapChilds) {
                this.mapChilds = mapChilds;
        }

        public UIPanel getUi_panel1() {
                return ui_panel1;
        }

        public void setUi_panel1(UIPanel ui_panel1) {
                this.ui_panel1 = ui_panel1;
        }

        public UIPanel getUi_panel2() {
                return ui_panel2;
        }

        public void setUi_panel2(UIPanel ui_panel2) {
                this.ui_panel2 = ui_panel2;
        }

        public UIPanel getUi_panel3() {
                return ui_panel3;
        }

        public void setUi_panel3(UIPanel ui_panel3) {
                this.ui_panel3 = ui_panel3;
        }

        public UITabbedPane getBase() {
                return base;
        }

        public void setBase(UITabbedPane base) {
                this.base = base;
        }

        public PrjAwardAddAction getAwd_action() {
                return awd_action;
        }

        public void setAwd_action(PrjAwardAddAction awd_action) {
                this.awd_action = awd_action;
        }

        public PrjQueryAddAction getQry_action() {
                return qry_action;
        }

        public void setQry_action(PrjQueryAddAction qry_action) {
                this.qry_action = qry_action;
        }

        public ShowUpableBillFormYX getBillform() {
                return billform;
        }

        public void setBillform(ShowUpableBillFormYX billform) {
                this.billform = billform;
        }

        public PrjCompAddAction getComp_action() {
                return comp_action;
        }

        public void setComp_action(PrjCompAddAction comp_action) {
                this.comp_action = comp_action;
        }
}
使用道具 举报

回复

落丶云轩的头像 楼主
发表于 2015-4-2 09:39:03 | 显示全部楼层
我想点击经销商费用承担页签,然后跳转到另一个主子界面,并且这个主子界面是以列表形式,即表头列表+表体列表
捕获.PNG
使用道具 举报

回复

落丶云轩的头像 楼主
发表于 2015-4-23 14:36:06 | 显示全部楼层
终于大功告成~
捕获.PNG
使用道具 举报

回复

发表于 2015-4-24 15:38:27 | 显示全部楼层
楼主能分享一下经验么
使用道具 举报

回复

落丶云轩的头像 楼主
发表于 2015-4-29 09:23:29 | 显示全部楼层
表头3个页签分别设置成3个UIPanel,然后将他们放入BasePanel中,最后对BasePanel加入TabChangedEventListner,具体的UIPanel设置就用模版去刻画。
使用道具 举报

回复

发表于 2015-4-29 15:49:55 | 显示全部楼层
落丶云轩 发表于 2015-4-29 09:23
表头3个页签分别设置成3个UIPanel,然后将他们放入BasePanel中,最后对BasePanel加入TabChangedEventListner ...

可以分享一下经验和成果代码不.....大家相互学习学习
使用道具 举报

回复

落丶云轩的头像 楼主
发表于 2015-5-4 09:31:50 | 显示全部楼层
列表界面的构造跟上面卡片的差不多
使用道具 举报

回复

发表于 2015-11-27 10:49:48 | 显示全部楼层
可以把页签切换事件的那个类的代码共享一下吗?谢谢
使用道具 举报

回复

发表于 2016-7-28 14:32:10 | 显示全部楼层
学习,学习了
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部