当前位置: 首页 > 知识库问答 >
问题:

Actionlistener在侧菜单的命令中打开空白窗体,但在按钮action listener中正常打开窗体

方博
2023-03-14

我从按钮操作监听器和命令操作监听器中调用了表单名称组。在这两个中,我都调用了一个连接请求。在连接的postResponse方法中,声明showForm。这里的问题是,当我单击按钮并正常打开groups表单时,它工作得很好,但当我单击hamburger菜单中的命令时,会显示空白表单,但一旦触摸屏幕,内容就会显示出来(在实际设备和模拟器中都是如此)。我也用组的形式调用了revalidate方法。因为我在命令和按钮actionListener中都有相同的代码,它怎么能在其中一个中工作而不能在另一个中工作呢

侧菜单中的命令

Command goToGroup = new Command("Tables",homeIcon1) {

    @Override
    public void actionPerformed(ActionEvent evt) {
        connectionGroup = new GroupConnection();
        connectionGroup.groupConnection(StateMachine.this);
    }

};
f.addCommand(goToGroup);
groups.addActionListener((e) -> {
    connectionGroup = new GroupConnection();
    connectionGroup.groupConnection(this);
});
public class GroupConnection {

void groupConnection(StateMachine sm) {

    ConnectionRequest connectionRequest = new ConnectionRequest() {
        @Override
        protected void readResponse(InputStream input) throws IOException {
         - - - - - - 
         - - - - - -
        }
        @Override
        protected void postResponse() {
            sm.showForm("Groups", null);
        }
        - - - - - - 
        - - - - - -
    };
  }
}
protected void beforeGroups(Form f) {
    Display.getInstance().scheduleBackgroundTask(() -> {
        Display.getInstance().callSerially(() -> {
            if (connectionGroup.responses != null) {
                for (Map<String, Object> element : connectionGroup.responses) {
                    String id = (String) element.get("id");
                    String tableName = (String) element.get("name");
                    String tableImg = (String) element.get("tablelogo");
                    - - - - - -  - -
                    - - - -- - - - - -
                }
            }
         });
        f.revalidate();
    });
}

共有1个答案

端木狐若
2023-03-14

两者之间的主要区别是侧菜单导航到临时窗体,然后在之后重新显示窗体。我猜您对revalidate()的调用是在表单尚未显示/构造的错误时间进行的。

 类似资料:
  • 当我运行此代码时,它会显示一个空白的黑色窗口,并显示未定义。 这不是颜色,它没有画任何线强硬我给的命令 我的错误是什么,阻止我将屏幕变白并引发错误?

  • 这个程序应该只在3D中创建一条橙色线,但似乎每次都会给我一个黑屏。我确保交换缓冲区,因为我使用的是双缓冲区,每次它通过顶点时我都会重新显示。不确定是什么问题

  • 我想知道当菜单按钮的菜单当前打开时,是否可以为菜单按钮设置特定样式(例如,背景色为黑色)。也就是说,如果菜单未打开,则其背景色不应为黑色。我可以在CSS文件中这样做吗?或者甚至可以这样做吗? 我知道菜单按钮有一个显示的方法,它指示我,菜单是否打开,但我不知道应用这个,以便在菜单打开时按钮颜色会发生变化。 这是菜单按钮:https://docs.oracle.com/javase/8/javafx/

  • 作为我程序的一部分,我需要有一个按钮,当用户单击它时,它会打开一个新窗口。 嗯,我想我应该有一个类来创建框架并按按钮调用它。但我不知道该怎么开始。我刚刚在程序中找到了我的按钮,但它不起作用。有人能告诉我怎么做吗?或对其进行编码。

  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 点击咨询入口时通过类方法调用以下方法,创建聊窗实体类,给参数传值。 1)请求指定接待组内的客服,需要给参数类chatParems的settingId属性传入指定的接待组id,具体的接待组id可以登录客服端,打开【设置-接入设置-智能分配】中创建和查看; 注意: 1、初始化方法要在该打开聊窗操作之前;该方法不可与初始化和登录等方法同时调用! 2、要保证传入的接待组存在且可用(即保证接待组是存在的且接