日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tab与list配合使用

發布時間:2025/4/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tab与list配合使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
tab與list配合使用會使效果增添不少,可是在之前沒有接觸過此框架的要做到很好卻是有點小難度,以下就按我在開發過程中遇到的問題,一一羅列出來,并附上解決的方法。
如圖:
?? ? ? ? ??
?
問題一:首先我從登陸窗體進入時,我不希望每個Tab選項卡中的List中都去服務器取數據,這樣會導致加載時間過長導致用戶等待過久,因為Tab是在窗體初始化的時候就要把List中的數據添加進去,如果要分別加載數據則在tab事件中必須重新加載之前的數據。
解決方法:此問題的關鍵是Container的使用,我們可以為每個選項卡添加一個Container,然后觸發tab事件時我們改變的只是Container中的數據及控件,所以這樣最完美了解決了存在的問題,創建list的代碼就不重復了,需要請看這里。
?

?? ? ? ?//?個人郵件
?? ? ? ?String[][]?mailPersonal?=?GetMailPersonal();
?? ? ? ?MailInfo[]?mailInfoPersonal?=?GetMainInfoArrary(mailPersonal,?true);
?? ? ? ?containerPersonal?=?new?Container();
?? ? ? ?containerPersonal.setLayout(new?BoxLayout(BoxLayout.Y_AXIS));
?? ? ? ?if?(mailInfoPersonal?!=?null)
?? ? ? ? ? ?containerPersonal.addComponent(createList(mailInfoPersonal,
?? ? ? ? ? ? ? ? ? ?List.VERTICAL,?new?ContactsRenderer()));
?? ? ? ?else?{
?? ? ? ? ? ?Label?label?=?new?Label("您的個人郵件沒有數據!");
?? ? ? ? ? ?containerPersonal.getStyle().setMargin(Component.TOP,?60);
?? ? ? ? ? ?containerPersonal.setLayout(new?FlowLayout(Component.CENTER));
?? ? ? ? ? ?containerPersonal.addComponent(label);
?? ? ? ?}
?? ? ? ?tab.addTab("個人郵件",?getRes().getImage("SJX.gif"),?containerPersonal);
?? ? ? ?//?群發郵件,未加載數據賦空數值
?? ? ? ?String[][]?mailGroup?=?{?{?"正在加載",?"",?"",?"",?"",?"",?""?}?};
?? ? ? ?MailInfo[]?mailInfoGroup?=?GetMainInfoArrary(mailGroup,?false);
?? ? ? ?final?Container?ContainerGroup?=?new?Container();
?? ? ? ?ContainerGroup.setLayout(new?BoxLayout(BoxLayout.Y_AXIS));
?? ? ? ?ContainerGroup.addComponent(createList(mailInfoGroup,?List.VERTICAL,
?? ? ? ? ? ? ? ?new?ContactsRenderer()));
?? ? ? ?tab.addTab("群發郵件",?getRes().getImage("SJX.gif"),?ContainerGroup);
?? ? ? ?//?保留郵件,未加載數據賦空數值
?? ? ? ?String[][]?mailSave?=?{?{?"正在加載",?"",?"",?"",?"",?"",?""?}?};
?? ? ? ?MailInfo[]?mailInfoSave?=?GetMainInfoArrary(mailSave,?true);
?? ? ? ?final?Container?ContainerSave?=?new?Container();
?? ? ? ?ContainerSave.setLayout(new?BoxLayout(BoxLayout.Y_AXIS));
?? ? ? ?ContainerSave.addComponent(createList(mailInfoSave,?List.VERTICAL,
?? ? ? ? ? ? ? ?new?ContactsRenderer()));
?? ? ? ?tab.addTab("保留郵件",?getRes().getImage("SJX.gif"),?ContainerSave);
?? ? ? ?//?發件箱,未加載數據賦空數值
?? ? ? ?String[][]?mailSend?=?{?{?"正在加載",?"",?"",?"",?"",?"",?""?}?};
?? ? ? ?MailInfo[]?mailInfoSend?=?GetMainInfoArrary(mailSend,?true);
?? ? ? ?final?Container?ContainerSend?=?new?Container();
?? ? ? ?ContainerSend.setLayout(new?BoxLayout(BoxLayout.Y_AXIS));
?? ? ? ?ContainerSend.addComponent(createList(mailInfoSend,?List.VERTICAL,
?? ? ? ? ? ? ? ?new?ContactsRenderer()));
?? ? ? ?tab.addTab("發件箱",?getRes().getImage("SJX.gif"),?ContainerSend);
?? ? ? ?tab.setTabPlacement(TabbedPane.TOP);
?? ? ? ?addComponent(BorderLayout.CENTER,?tab);
?? ? ? ?//?tab事件,觸發時請求數據并向Container添加已經填充好數據的list
?? ? ? ?tab.addTabsListener(new?SelectionListener()?{
?? ? ? ? ? ?public?void?selectionChanged(int?oldSelected,?int?newSelected)?{
?? ? ? ? ? ? ? ?int?indexvalue?=?tab.getSelectedIndex();
?? ? ? ? ? ? ? ?if?(indexvalue?==?1?&&?flagGroup?==?0)?{
?? ? ? ? ? ? ? ? ? ?Global.GetWaitCursor("正在轉到群發郵件,請稍候",?FormFactory
?? ? ? ? ? ? ? ? ? ? ? ? ? ?.getInstance().getMailForm());
?? ? ? ? ? ? ? ? ? ?new?Thread()?{
?? ? ? ? ? ? ? ? ? ? ? ?public?void?run()?{
?? ? ? ? ? ? ? ? ? ? ? ? ? ?String[][]?mailGroup?=?GetMailGroup();
?? ? ? ? ? ? ? ? ? ? ? ? ? ?flagGroup?=?1;
?? ? ? ? ? ? ? ? ? ? ? ? ? ?LoadDataAgain(ContainerGroup,?"您的群發郵件沒有數據!",
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mailGroup,?false);
?? ? ? ? ? ? ? ? ? ? ? ? ? ?FormFactory.getInstance().getMailForm().show();
?? ? ? ? ? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ? ? ?}.start();
?? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ?if?(indexvalue?==?2?&&?flagSave?==?0)?{
?? ? ? ? ? ? ? ? ? ?Global.GetWaitCursor("正在轉到保留郵件,請稍候",?FormFactory
?? ? ? ? ? ? ? ? ? ? ? ? ? ?.getInstance().getMailForm());
?? ? ? ? ? ? ? ? ? ?new?Thread()?{
?? ? ? ? ? ? ? ? ? ? ? ?public?void?run()?{
?? ? ? ? ? ? ? ? ? ? ? ? ? ?String[][]?mailSave?=?GetMailSave();
?? ? ? ? ? ? ? ? ? ? ? ? ? ?flagSave?=?1;
?? ? ? ? ? ? ? ? ? ? ? ? ? ?LoadDataAgain(ContainerSave,?"您的保留郵件沒有任何數據!",
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mailSave,?true);
?? ? ? ? ? ? ? ? ? ? ? ? ? ?FormFactory.getInstance().getMailForm().show();
?? ? ? ? ? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ? ? ?}.start();
?? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ?if?(indexvalue?==?3?&&?flagSend?==?0)?{
?? ? ? ? ? ? ? ? ? ?Global.GetWaitCursor("正在轉到發件箱,請稍候",?FormFactory
?? ? ? ? ? ? ? ? ? ? ? ? ? ?.getInstance().getMailForm());
?? ? ? ? ? ? ? ? ? ?new?Thread()?{
?? ? ? ? ? ? ? ? ? ? ? ?public?void?run()?{
?? ? ? ? ? ? ? ? ? ? ? ? ? ?String[][]?mailSend?=?GetMailSend();
?? ? ? ? ? ? ? ? ? ? ? ? ? ?flagSend?=?1;
?? ? ? ? ? ? ? ? ? ? ? ? ? ?LoadDataAgain(ContainerSend,?"您的發件箱沒有任何數據!",
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mailSend,?true);
?? ? ? ? ? ? ? ? ? ? ? ? ? ?FormFactory.getInstance().getMailForm().show();
?? ? ? ? ? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ? ? ?}.start();
?? ? ? ? ? ? ? ?}
?? ? ? ? ? ?}
?? ? ? ?});
?? ? ? ?//將指定的Container添加上List
?? ?private?void?LoadDataAgain(Container?containner,?String?Labelstring,
?? ? ? ? ? ?String[][]?mail,?boolean?bolvalue)?{
?? ? ? ?MailInfo[]?mailInfo?=?GetMainInfoArrary(mail,?bolvalue);
?? ? ? ?containner.removeAll();
?? ? ? ?if?(mailInfo?!=?null)
?? ? ? ? ? ?containner.addComponent(createList(mailInfo,?List.VERTICAL,
?? ? ? ? ? ? ? ? ? ?new?ContactsRenderer()));
?? ? ? ?else?{
?? ? ? ? ? ?Label?label?=?new?Label(Labelstring);
?? ? ? ? ? ?containner.getStyle().setMargin(Component.TOP,?60);
?? ? ? ? ? ?containner.setLayout(new?FlowLayout(Component.CENTER));
?? ? ? ? ? ?containner.addComponent(label);
?? ? ? ?}
?? ?}
問題二:獲取選中的List列中的數據,這是普遍會遇到的難題,如果你單單是用手機中間鍵觸發的話,或許比較簡單,但是如果在菜單按鈕上也要增加此獲取list列表的數據,就會比較麻煩,不過麻煩都過去了。
解決辦法:通過list的獲取焦點失去焦點還有選擇焦點,設置全局變量來獲取list中綁定的屬性值。
?
?

?? ? ? ?//?list列表選擇焦點監聽事件
?? ? ? ? ? ? ? ?list.addSelectionListener(new?SelectionListener()?{
?? ? ? ? ? ?public?void?selectionChanged(int?oldSelected,?int?newSelected)?{
?? ? ? ? ? ? ? ?globalStrMailGuid?=?MainInfos[newSelected].fid;

?? ? ? ? ? ?}
?? ? ? ?});
?? ? ? ?list.addFocusListener(new?FocusListener()?{
?? ? ? ? ? ?//?list獲得焦點
?? ? ? ? ? ?public?void?focusGained(Component?cmp)?{
?? ? ? ? ? ? ? ?globalStrMailGuid?=?MainInfos[list.getSelectedIndex()].fid;
?? ? ? ? ? ?}

?? ? ? ? ? ?//?list失去焦點
?? ? ? ? ? ?public?void?focusLost(Component?cmp)?{
?? ? ? ? ? ? ? ?globalStrMailGuid?=?"";
?? ? ? ? ? ?}
?? ? ? ?});
list.addActionListener(new?ActionListener()?{
?? ? ? ? ? ?public?void?actionPerformed(final?ActionEvent?evt)?{
?? ? ? ? ? ? ? ?//觸發列表中的列的時候你所要做的事情。。。
?? ? ? ? ? ?}
?? ? ? ?});
問題三:選中狀態的調整,如果沒有調整的話,你會發現list放到Tab后,選中狀態跟綁定的數據會慢了一拍,也就是你選在第二條而數據卻是第一條的。
解決辦法:設置一全局變量,getListFocusComponent做下更改即可,代碼如下。
?

?? ? ? ? ? ?//創建list中的getListFocusComponent中添加此if語句。 ? ?
?? ? ? ? ? ? ? ?public?Component?getListFocusComponent(final?List?list)?{
?? ? ? ? ? ?if?(globalselect?==?1)
?? ? ? ? ? ? ? ?return?focus;
?? ? ? ? ? ?else
?? ? ? ? ? ? ? ?return?null;
?? ? ? ?}
?? ? ? ? ? ? ? ?//也就是list獲得焦點的時候才返回focus選中狀態,否則返回null
?? ? ? ?list.addFocusListener(new?FocusListener()?{
?? ? ? ? ? ?//?list獲得焦點
?? ? ? ? ? ?public?void?focusGained(Component?cmp)?{
?? ? ? ? ? ? ? ?globalselect?=?1;
?? ? ? ? ? ?}

?? ? ? ? ? ?//?list失去焦點
?? ? ? ? ? ?public?void?focusLost(Component?cmp)?{

?? ? ? ? ? ? ? ?globalselect?=?0;
?? ? ? ? ? ?}
?? ? ? ?});
這三點是比較大的問題所在,其他的還有一些可能會比較好解決就不列出來了。

轉載于:https://blog.51cto.com/zhaohaiyang/435619

總結

以上是生活随笔為你收集整理的tab与list配合使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品国产乱码久久久久久久 | 国产性猛交96 | 性感美女被爆操 | 色一情一区二区三区四区 | 少妇做爰k8经典 | 男人天堂va | 波多野结衣一区二区三区四区 | 97影院手机版 | 黄色片亚洲 | 国产日产精品一区二区三区 | 午夜一区二区三区免费 | 中文字幕乱码人妻一区二区三区 | 精品久久人人妻人人做人人 | 欧美高清久久 | 3d动漫啪啪精品一区二区中文字幕 | 亚洲精品乱码久久久久久9色 | www.色就是色 | 野花中文免费观看6 | 亚洲系列第一页 | 君岛美绪在线 | 欧美精品999 | 亚洲国产传媒 | 国产精品一区二区人人爽 | 欧美14sex性hd摘花 | 蜜臀麻豆 | 丝袜+亚洲+另类+欧美+变态 | 色视频一区 | 俺去射 | 一区二区视频在线免费观看 | 在线国产精品一区 | 欧美毛片免费看 | 在线免费中文字幕 | 午夜色播 | 99热这里都是精品 | 波多野结衣视频播放 | 亚洲国产日韩在线 | 香港三级日本三级 | 亚洲欧美一二三 | 婷婷五月综合缴情在线视频 | 六月丁香激情综合 | 成人亚洲一区二区 | 精品综合在线 | 日本少妇网站 | 在线观看无遮挡 | 美女扒开屁股让男人桶 | 深夜视频免费在线观看 | 性色一区二区 | 亚洲欧美韩国 | www.国产在线视频 | 爱逼综合 | 91干网 | 51av在线| 最新最近中文字幕 | 国产全肉乱妇杂乱视频 | 亚洲v欧美v另类v综合v日韩v | 中文天堂av | 日日夜夜操操 | 污视频在线免费观看 | 午夜精品久久99蜜桃的功能介绍 | 国产日产欧美 | 国产高中女学生第一次 | 永久免费AV无码网站韩国毛片 | 波多野结衣潜藏淫欲 | 国产精品99久久久久久宅男 | 日韩欧美卡一卡二 | 午夜精品久久久 | www.狠狠爱| 欧美一级一级一级 | 女生抠逼视频 | 男男成人高潮片免费网站 | 干日本少妇首页 | 男人午夜网站 | 黄色av免费在线看 | 岛国激情| 69看片 | 久久草精品 | 成人欧美一区二区三区黑人动态图 | 自拍偷拍国产 | 国产精品边吃奶边做爽 | 爱情岛论坛亚洲品质自拍视频 | 中文字幕日韩三级片 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 日本a在线天堂 | 香蕉国产999 | 国产精品亚洲αv天堂无码 伊人性视频 | 亚洲国产一二 | 久久久久91 | 女子spa高潮呻吟抽搐 | 午夜福利电影一区二区 | 男女啪啪免费网站 | 伊人狼人影院 | 91香蕉黄| 91视频插插插 | 亚洲综合涩 | 黄网站免费入口 | 香蕉视频首页 | 丁香色综合 | 欧美成在线 | 免费插插视频 |