当前位置: 首页 > 面试题库 >

将JMenuItem传递给Controller类

谷梁振
2023-03-14
问题内容

JMenuItem在MVC框架的View类上有3套。我想在controll类中引用它们EventController。有人可以告诉我这实现了吗?下面是事件控制器。EventView类由JMenuItemaddEvent,editEvent,deleteEvent组成,如何在Controller类中为其侦听器。有人可以在Controller类的顶部演示使用示例代码吗?

public class EventController implements ActionLister {
private EventModel model;
private EventView view;
private ActionListener actionListener;


public EventController(EventModel model, EventView view){
    this.model = model;
    this.view = view;
}

第二个问题,我只能JTableView类本身更新a ,因此

public void updateEventTable() {
    try {
        String sql = "SELECT date as 'Date',eventName as 'Name', time as 'Time' FROM Event";
         pst = conn.prepareStatement(sql); 
         rs = pst.executeQuery();
         tableEvent.setModel(DbUtils.resultSetToTableModel(rs));
         tableEvent.getColumnModel().getColumn(0).setPreferredWidth(80);
         tableEvent.getColumnModel().getColumn(1).setPreferredWidth(170);
         tableEvent.getColumnModel().getColumn(2).setPreferredWidth(110);  
    }
    catch (Exception e ) {
        JOptionPane.showMessageDialog(null, e);
    } finally {
        try {
            rs.close(); pst.close();conn.close();;
        } catch(SQLException e){}
    }
}

在View类中具有代码是一种不好的做法,理想情况下应在Model中,但是如何执行此操作可以向我展示。这些概念对我来说是新的,想学习。因为JTable我觉得很难


问题答案:

让您的模型导出实例Action可以根据需要添加到菜单和按钮中。由于数据库访问本质上是异步的,因此在更新EDT上的表模式时,让每个此类操作都使用工作线程在后台查询数据库。另请参阅有关Swing组件和模型之间关系的
Swing体系结构概述


附录: 您可以给我看一个代码示例吗?

  • FileMenuAction用于封装功能的非常基本的示例。

  • 引用的例子在这里使用Action更广泛JToolBar

  • JHotDraw,引在这里,是一个非常复杂的例子,改变的可用Action实例基于上下文,如所讨论这里。

  • 此示例对Swing中的MVC进行了一般检查。



 类似资料:
  • 问题内容: 我试图将SharedPreferences首选项作为AsyncTask中doInBackground函数的参数传递。我已经给它传递了一个字符串(URL),所以我也需要将首选项也作为字符串传递。我可以简单地使用prefs.toString()将其转换为字符串吗? 这是我设置偏好的地方: 问题答案: 你不能,你不应该。您可以轻松地读取内部首选项,而无需将任何内容传递给方法,只需使用即可:

  • 问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对

  • 问题内容: 因此,我看到了一个示例,其中他们将延迟的angualar传递到ngRepeat中,并且效果很好。由于某些原因,当我设置此示例时,它不起作用。谁能告诉我为什么?如果您分配的数据没有延迟,则可以正常工作,即 非常感谢 小提琴在这里 问题答案: 我认为您不能直接使用Promise对象,而应使用文档中所述的回调。 这意味着您 而是应该像 否则,您将包含promise对象,而不包含要传递给的数据

  • 问题内容: 考虑一个非fx的现有应用程序,将其称为。 公开一个对象,该对象又公开了一些属性。也接受这些属性的侦听器。 我的问题是关于 将 JavaFx gui 添加 到此类应用程序。将明显延长,将需要一个参考对象。 在寻找将非String参数传递给我的解决方案时,我发现了几种不同的方法: 静态方法:例如,已初始化对in 的静态引用。在这里可以看到使用静电的一个示例。 JavaFx 9方法:如此处所

  • 我在解一个有很多常数的非线性方程 我创建了一个用于解决以下问题的函数: 然后我想做: 但是正在解包并向函数传递太多参数,因此我得到: TypeError:terminalV()正好接受2个参数(给定6个) 那么,我的问题是,我是否可以通过某种方式将元组传递给调用的函数?

  • 我一直试图从一个对象数组填充一个JTable,但是什么也没有显示出来。下面是填充表的方法代码。system.out.println使我能够检查数据是否正确传递,变量中是否有值。这是来自界面的: 即使来自接口的数据显示在控制台中,也只显示表头。如果有人能解决如何正确地将数据值传递给JTable,那就太棒了!