栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何仅在所需的选项卡中显示带有图像的按钮?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何仅在所需的选项卡中显示带有图像的按钮?

帮助他人(包括我自己)帮助您:

保持代码整洁(例如删除不必要的内容getImage)格式化代码,以便于阅读。我不能太强调这一点。
为了帮助自己,请务必完全理解所有代码:

阅读想像一下它会如何运行运行它并观察实际行为了解您的心理模型与计算机之间的区别。
通常,这将帮助您调试代码。另请查看Kevin Workman的调试教程。

关于您的问题:按钮始终在中呈现draw()。您只想在第一个选项卡处于活动状态时才绘制它:

获取第一个标签检查它是否处于活动状态如果是这样,请渲染按钮
例如,代替button.draw()您使用:

if(cp5.getTab("default").isActive()){    button.draw();  }

可以做到这一点,但是随着界面变得越来越复杂,您可能希望
对每个选项卡上绘制的内容进行分组。这是有关如何为
每个标签具有更多控件的UI进行组织的想法:

  • 添加一个全局变量(在代码顶部)以跟踪当前选项卡:
    int currentTab = 1;
  • 调用
    displayTabs()
    ;的draw(),而不是button.draw()为每片绘图处理。(有关displayTabs()波纹管的更多信息)
  • controlEvent()
    更新
    currentTab

Like so:

void controlEvent(ControlEvent event) {  // update current tab only if the current event comes from a tab (and not other controllers)   if(event.isTab()){    currentTab = event.getId();  }}

单击/更新controlEvent任何ControlP5组件(控制器)时,都会触发该想法。如果是标签,则可以更新currentTab以
了解draw()要draw()使用的内容displayTabs():

void displayTabs(){  switch(currentTab){    case 1:      displayTab1();      break;    case 2:      displayTab2();      break;  }}void displayTab1(){  button.draw();}void displayTab2(){  // render stuff for tab 2 only}

因此,有一个开关可以根据

currentTab
值调用一个功能或另一个功能。这样做的好处是,将来您可以
轻松地case为另一个选项卡复制另一个选项卡,并且每个选项卡的内容都被整齐地分隔开了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号