小编fiz*_*ban的帖子

什么是嵌入Java游戏引擎的优秀,简单的脚本语言?

我正在寻找的是Java脚本引擎,它允许用户编写简单的脚本来控制游戏的行为和事件.一些东西:

  • 很简单 - 很容易上手,特别是对于那些有一些基本编程/脚本编写经验的人

  • 提供了大量的控制 - 我可以轻松地启动/停止/暂停脚本并控制每个执行的执行时间,也许可以使用多少内存空间

  • 与Java环境本身分离 - 无需从脚本访问任何Java对象或类,只能访问我明确提供的那些函数

我已经考虑过Rhino JavaScript引擎了,它适合我的目的,但是从我读过的(例子)来看,它设计用于与Java集成太多,以至于安全地沙箱化会很棘手.我宁愿从一个引擎开始,默认情况下脚本无法访问任何东西,而不是一个我必须关闭的完全打开的引擎.这些脚本可能并不总是受信任,因此环境不容易被打破.

我也考虑用像ANTLR这样的东西开发我自己的语言,但它可能比我想要的更多努力.

有什么建议?

java scripting

7
推荐指数
1
解决办法
2239
查看次数

动态创建表作为分区的方法:好的还是坏的做法?

应用程序动态创建数据库表作为分区方法是否合理?

例如,假设我有一个大表"小部件",其中"userID"列标识每行的所有者.如果此表倾向于变得非常大,那么让应用程序为每个新用户创建一个名为"widgets_ {username}"的新表是否有意义?假设应用程序将只需要一次查询属于单个用户的小部件(即,不需要尝试将这些用户小部件表中的任何一个加入到一起).

这样做可以将一个大表分解为更容易管理的块,但这似乎不是一个优雅的解决方案.在我看来,应该在编写应用程序时定义数据库模式,并且任何运行时数据都存储为行,而不是作为附加表存储.

作为一个更普遍的问题,在运行时修改数据库模式是否正常?

编辑:这个问题大多是假设的; 我有一种很好的感觉,在运行时创建表是没有意义的.话虽这么说,我们的应用程序中有一个包含数百万行的表.SELECT执行得很好,但是删除特定用户拥有的所有行可能需要一段时间.基本上我正在寻找一些可靠的推理为什么动态创建每个用户的表对我问的时候没有意义.

sql database database-design

3
推荐指数
1
解决办法
787
查看次数

编写Swing组件:如何添加添加ActionListeners的功能?

我想通过组合几个现有组件来创建一个(简单的,有希望的)自定义Swing组件.在我的例子中,它是一个开关开关,由一个JLabel和两个用于On和Off的JButton组成.我通过扩展JPanel来开始OnOffSwitch.构造函数添加子组件,并将其自身设置为按钮的ActionListener.该类有一个isOn()方法,用于查询组件的当前状态.

我现在想要添加将ActionListeners添加到OnOffSwitch类的功能.我希望通过扩展像JPanel这样的Swing组件来免费提供这个功能,但是JPanel没有这个功能.通过源代码的外观,具有此功能的每个Swing组件都会自行重新实现它:向列表添加侦听器,触发ActionEvents等等.

实现我想要的正确方法是什么?我可以从各种Swing组件中复制/粘贴该代码(或重写其中的要点),或者我可以实现自己的OnOffSwitchListener接口.为了保持一致,似乎所有组件都应该使用ActionListeners.

java swing custom-controls actionlistener

2
推荐指数
2
解决办法
2417
查看次数