我目前正在开发一个只需要命令行界面的小型实用程序,我开始想知道Java是否提供了创建CLI的任何标准方法,类似于Swing和GUI之类的方式.我对命令行参数和解析它们并不感兴趣,而是用户与程序使用它进行的基于命令的交互.这适用于GUI根本不需要或不是使用程序的选项.
谷歌搜索主题只会产生关于如何使用BufferedReader和喜欢与用户进行基本交互的教程,旨在让人们学习Java的基础知识并编写简单的UI,询问名称并打印"Hello World!".等等..
是否有任何库专注于为快速实现更复杂的CLI UI提供良好的框架,或者这是否真的是每个人都以临时方式为自己的实用程序实现的?
也许有人知道在不是所有东西都是图形的时候创建的实现模式?这也是有用的资源.
java frameworks design-patterns command-line-interface ui-design
在工业中,通常存在一个问题,您需要计算材料的最有效使用,无论是织物,木材,金属等.因此起点是给定尺寸的X形状,由多边形和/或弯曲制成lines和target是给定尺寸的另一个多边形.
我假设许多当前的CAM套件实现了这一点,但没有使用它们或内部的经验,使用什么样的计算算法来找到最有效的空间利用?有人能指出我讨论这个主题的书或其他参考书吗?
我不得不将整个wordpress-installation复制到另一台服务器上.我只是在那里安装了一个新的Wordpress,并导入了以前Wordpress"导出"的xml文件中的所有数据.无论如何,自定义菜单不包括在内.你知道他们在数据库中的位置,所以我可以从那里抓住它们吗?
这个问题让我很困惑,因为代码看起来完全无害.
IE8通过以下消息暂停脚本执行:
未实现.map.js行:66 char:5
这是代码中的一个片段:
63 if(data.map[x] !== undefined && data.map[x][y] !== undefined) {
64
65 left = (x - data.dim.x_min)*32 + 30;
66 top = (data.dim.y_max - y)*32 + 30;
67
68 /* do stuff */
XX }
Run Code Online (Sandbox Code Playgroud)
debug info:x:263 data.dim.x_min:263 y:172 data.dim.y_max:174
数据是从JQuery Ajax调用返回的对象.这适用于Firefox 3.0和3.5,safari 4.0.2,我在IE8中查看页面时才发现此错误.强制IE8进入IE7模式不会使错误消失.
我没有IE7来调试,但我有一个测试人员说它在IE7中也不起作用.
我有一个mercurial存储库,我使用团队 - >推送使用eclipses MercurialEclipse插件推送我的更改.现在存储库URL已经更改,并且eclipse始终会记住输入字段中的旧URL,这是默认情况下预选的,我需要从下拉列表中选择新的URL.非常小的问题,但令人讨厌的是..有没有办法从字段中清除旧的值,所以我不总是需要手动选择URL,直到时间结束?
或者,如何将默认存储库条目更改为新存储库条目?
我正在尝试使用新密钥将修改后的文档插回到Cassandra DB.我很难搞清楚错误信息指向的问题.当寻找有类似问题的其他人时,答案似乎与键有关,而在我的情况下,None只是几个键的值.我该如何解决这个问题?
keys = ','.join(current.keys())
params = [':' + x for x in current.keys()]
values = ','.join(params)
query = "INSERT INTO wiki.pages (%s) Values (%s)" % (keys, values)
query = query.encode('utf-8')
cursor.execute(query, current)
Run Code Online (Sandbox Code Playgroud)
这是查询和当前的数据:
INSERT INTO wiki.pages (changed,content,meta,attachment,revision,page,editor)
VALUES (:changed,:content,:meta,:attachment,:revision,:page,:editor)
{
u'changed': '2013-02-15 16:31:49',
u'content': 'Testing',
u'meta': None,
u'attachment': None,
u'revision': 2,
u'page': u'FrontPage',
u'editor': 'Anonymous'
}
Run Code Online (Sandbox Code Playgroud)
此操作失败,并显示以下错误:
cql.apivalues.ProgrammingError:
Bad Request: line 1:123 no viable alternative at input 'None'
Run Code Online (Sandbox Code Playgroud) 我正在使用3列4行的MigLayout表单,如下所示:
"wrap 3",
"[15%] 15px [45%] 15px [40%]",
"20 [] 15 [] 15 [grow,fill] 15 []"
Run Code Online (Sandbox Code Playgroud)
现在我的目标是使其看起来像这样:
.------------------------------------.
| 15% | 45% | 40% |
|------------------------------------|
| | | |
|------------------------------------|
| | | |
|------------------------------------|
| button,button |
`------------------------------------´
Run Code Online (Sandbox Code Playgroud)
我希望最后一行的按钮居中,因此我假设首先需要将第4行的3列跨成一列,"span 3, center"并在按钮上加上组件约束。
仅使用一个按钮就可以很好地工作,但是在弄清楚如何添加第二个按钮的同时将两个按钮同时保持在同一行的中心位置时,我遇到了问题。如果我在第二个按钮上添加相同的约束,则它在下一行的第一个按钮的下方居中显示。
编写PHP代码时,如果您不记得之前编辑的部分,可能会导致某些人难以追踪解析错误.我很想知道任何有见地的方法来找出你可能发现的这些错误.
示例:意外';',在第877行的someclass.php中期待T_FUNCTION
这个模糊的错误指出你有意外; 在包含877行PHP代码的类中,错误肯定不在最后一行.错误消息是否具有误导性?你从哪里以及如何开始寻找,除了从顶部开始,只是试图找到扫描每一行代码的有问题的地方.
当我命名我的应用程序,我遇到一个问题,我想将数据发送到特定的套接字,这是我正在使用的代码的缩写版本:
var io = require('socket.io').listen(config.web.port);
var chat = io.of('space').on('connection', function (socket) {
// This works:
// Input: xhr-polling received data packet 5::/space:{"name":"test"}
// Output: xhr-polling writing 5::/space:{"name":"test","args":[{"msg":"test"}]}
socket.on('test', function(){
socket.emit('test',{msg: "test"});
});
// This fails:
// Input: xhr-polling received data packet 5::/space:{"name":"test2"}
// Output: xhr-polling writing 5:::{"name":"test2","args":[{"msg":"test2"}]}
socket.on('test2',function(){
io.sockets.socket(socket.id).emit('test2',{msg: "test2"});
});
}
Run Code Online (Sandbox Code Playgroud)
如您所见,第二个缺少输出中的命名空间部分.在真正的应用程序中,我从客户端管理器中选择套接字ID,所以我在这段代码中使用socket.id而不是client.getSocketId(),但这个想法与我只是回应到来源客户在这里.
在输出到客户端时,如何使第二种方法使用正确的命名空间?