小编Gig*_*ron的帖子

以编程方式单击Java Swing中的GUI按钮

我将如何以编程方式单击一个Swing JButton,以便注册所有相关的动作/鼠标事件并对用户可见(即他们看到按钮被按下就像他们实际点击它一样)?

该按钮与我正在运行的应用程序相同; 我不是想控制另一个应用程序中的按钮.我想我可以直接将事件注入队列,但是如果可能的话我宁愿避免使用这种方法,这样做也不会显示可见的点击.

我看到java.awt.Robot类提供了移动鼠标并单击鼠标的方法,但没有让它单击特定按钮.

java swing awtrobot

54
推荐指数
2
解决办法
8万
查看次数

在Scala中,有一种简洁的方法可以将一个值与多个值进行比较

假设我有一个变量x,我想检查它是否等于多个值a,b,c,d,e中的任何一个(我的意思是==相等,而不是同一性).

在SQL查询中,处理相同的概念

WHERE x IN (a, b, c, d, e).
Run Code Online (Sandbox Code Playgroud)

在Scala中是否有类似的东西那么简单?我知道它可以在一行中使用复杂的表达式来构建,例如构建HashSet并检查集合中是否存在,但我更喜欢使用简单的构造(如果它可用).

scala equality

17
推荐指数
5
解决办法
1万
查看次数

如何从scala交互式解释器(REPL)中运行外部文件?

我有一个包含几行scala代码的文件 - 导入,列表值赋值等,我经常用它来初始化一些使用REPL的东西.

目前我只是在文本编辑器中打开文件并将其复制并粘贴到REPL中,但有没有办法通过以更直接的方式调用外部文件来完成它,所以我不需要复制和 - 每次都是咒骂?

在某些交互式数据库工具(如SQL Plus)中,可通过@filename在提示符下键入来完成.Scala REPL中有类似的东西吗?前面的文件名@不起作用,eval也不起作用.

interpreter scala read-eval-print-loop

14
推荐指数
1
解决办法
6952
查看次数

在没有循环的对象列表中在Scala中创建HashMap

我有一个对象列表,每个对象有两个感兴趣的字段,我称之为"键"和"值".从那里我需要构建一个由"key"映射到"value"的条目组成的HashMap.

我知道可以通过循环遍历列表并调用列表hmap.put(obj.key, obj.value)中的每个项目来完成.但不知何故,它"闻起来"就像这样可以在一个简单的代码行中使用map或者flatMap或者其他一些Scala的List操作组合,其中包含一个功能构造.我"闻到"了吗,怎么做?

scala list hashmap

9
推荐指数
3
解决办法
8502
查看次数

在MigLayout中推送,增长和填充有什么区别?

我看到growpush接受一个可选的加权参数,但除此之外:增长,填充和推送之间的真正区别是什么?文档不是很清楚.

java layout swing miglayout

8
推荐指数
1
解决办法
1321
查看次数

在Scala中读取键盘输入,并显示键入的字符

我知道readInt,并readLine从键盘读取输入类似的方法和我能够填充与用户输入的数据变量.但是在REPL中,在输入字符时不会显示任何内容.REPL中是否有设置使它们可见?或者我应该使用其他方式来读取用户的输入?

console scala user-input

8
推荐指数
1
解决办法
1243
查看次数

避免将不需要的本地历史记录推送到Bazaar或Mercurial中的主存储库

我是DVCS的新手,所以我可能误解了一些概念和术语,但这是我想要实现的想法,我试图找出Bazaar或Mercurial是否以直截了当的方式支持这一点:

主存储库中有经过良好测试的代码.假设我克隆(或拉或分支或其他任何术语)从那里克隆到本地存储库,然后每天当我处理我提交的代码本地更改时,有时一天多次.

在完成所有更改和测试之后,我想只获得放入主存储库的每个文件的最新(本地)提交版本,不是我在调试和单元测试期间本地提交的几十个中间版本.

根据我一直在阅读的内容,显然这些半生不熟的版本的整个历史将反映在主存储库中,如果我推动它.一些互联网文章似乎暗示如果处理得当,rebase可以解决这个问题,但是不清楚是否/如何做到这一点,因为看起来rebase更多的是避免分叉的分支/合并历史而不是避免提交大量中间版本.

mercurial dvcs bazaar rebase

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

Scala交互式解释器(REPL) - 如何将输出重定向到文本文件?

是否可能,如果是,它是如何完成的?Windows或Linux命令行上的常规>>>工作在此上下文中不起作用.

scala redirectstandardoutput read-eval-print-loop

6
推荐指数
1
解决办法
2762
查看次数

如何在Scala中为TreeSet分配订单而不重复自己

我有这段Scala代码,它定义了一个排序并将其应用于TreeSet.这部分编译得很好.

val acctOrdering = new Ordering[Account] {
  def compare(acc1: Account, acc2: Account) {

    // code to compare based on various criteria

  }
}

private var accountSet = new TreeSet[Account]()(acctOrdering)
Run Code Online (Sandbox Code Playgroud)

在代码的其他地方,我希望得到集合中的第一个元素(如果第一个元素没有产生我想要的东西,后来会得到后续元素,尽管通常不需要),基于我之前的顺序指定.我认为以下可行,但它没有编译:

val firstAccount = accountSet.min
Run Code Online (Sandbox Code Playgroud)

错误是 "could not find implicit value for parameter cmp: Ordering[Account]"

但是,如果我在要求最小值时再次指定排序对象,则编译:

val firstAccount = accountSet.min(acctOrdering)
Run Code Online (Sandbox Code Playgroud)

我以为它会自动使用我在构造时给出的顺序,并在我添加到集合时逐步排序,所以我不必在调用时再次指定顺序min.

我究竟做错了什么?我是否需要在某处明确定义隐式函数?

scala sortedset treeset scala-collections

4
推荐指数
1
解决办法
2886
查看次数

在允许可见光标移动的同时禁用JTextPane中的编辑

我有一个JTextPane通过从文件读取填充,之后数据被解析和格式化.不允许用户编辑JTextPane,但我希望他们能够使用可见光标在其中导航.

如果我使用setEditable(false),光标是不可见的,虽然可以通过按住Shift并使用箭头键选择文本块来间接观察不可见光标的位置.

要启用一个可见光标同时禁止编辑,而不是setEditable(false)我创建了一个虚拟的DocumentFilter,根本无助于它的insertString(),remove()replace()方法.但是我必须交换常规过滤器以便以编程方式填充JTextPane文件,然后在将控制返回给用户之前放回虚拟过滤器.

到目前为止,这似乎有效,但是有一个更简单的解决方案吗?如果我保留原样,是否有任何按键或鼠标活动序列可以某种方式允许用户编辑文本窗格,因为它在技术上可编辑setEditable

java swing jtextpane

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