问题标签 [scala-swing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
51 浏览

java - 用 BorderPanel 填充 MainFrame

我基本上想用一个可以占用 MainFrame 中所有可用空间的 SplitPanel 来填充我的 MainFrame。我读到这样做的一种方法是将BorderPanel 添加到MainFrame,并将SplitPane 添加到BorderPanel 的中心。

我的问题是,当我希望 BorderPanel 实际上填满整个框架时,它似乎采用了尽可能小的尺寸(这里为 0)。

我通过在 MainFrame 中设置找到了解决方案

但是感觉很脏,通过阅读文档,我不知道它为什么会起作用。没有更好的方法吗?

0 投票
2 回答
1201 浏览

scala - 无法通过 Scala IDE 中的 Gradle 添加 scala swing 依赖项

我是学习 Scala 的初学者。我在 Windows 8.1 上,使用Scala IDE 4.0.0Gradle以及scalaeclipse插件来创建一个项目,我想在其中使用scala.swingjavax.media包。我将这两个库作为依赖项添加到 build.gradle 中,只有 javax.media 有效。

我所做的步骤是:

  1. 创建文件夹和文件如下

    build.gradleGradle构建脚本在哪里,Foo.scala是Scala脚本,如下图

    <<build.gradle>>

    <<Foo.scala>>

    /li>
  2. 使用命令行,导航到foo并运行gradle eclipse

  3. 在 Scala IDE 中,执行import -> General -> Existing Projects into Workspace -> Browse -> Foo

然后,我在 Foo.scala 第 2 行收到一个错误,显示为object swing is not a member of package scala. 并且Referenced Libraries左侧面板上的列表仅显示jmf-2.1.1e.jarfor javax.media,如下图所示

对象摆动不是包 scala 的成员

<<.classpath>>

我曾尝试配置 Eclipse 的构建路径并scala-swing.jar手动添加,效果很好,但是每次运行 Gradle 构建脚本时我都必须这样做。请建议为什么scala-swing-something.jarGradle 没有导入,以及如何修复它。


这是运行后的日志消息$ gradle dependencies

0 投票
4 回答
3193 浏览

scala - 如何在 Eclipse 中将 Swing 与 Scala 2.11 一起使用?

我刚刚将Scala升级到2.11,现在我无法导入scala.swing。我该如何从中恢复?我可以只下载一个 jar 文件或类似的简单文件吗?我希望我不必建造任何东西。

编辑:如果可能的话,该解决方案应该可以在 Eclipse 中使用,而无需从源代码构建任何东西。

0 投票
2 回答
136 浏览

multithreading - 尝试更改内容时,Scala 摆动面板消失(仅在运行线程时)

因此,我正在编写一个 boid 模拟程序作为学校项目。我的程序支持这些不与其他组一起聚集的多个不同组,它们都有不同的设置,我通过在创建新部落时向程序的主 GUI 添加一个 BoxPanel 来完成,并且这些 BoxPanel 有一个设置按钮打开一个带有组设置的新框架。

当我启动程序并添加代码中所有预定义的部落时,这非常有效。现在我制作了 GUI 的一个新部分,让您可以创建这些 boid 的新组并在模拟运行时添加它们,这就是我遇到问题的时候。

由于某些奇怪的原因,它添加了组就好了,在模拟中具有正确的设置,但它不会将 BoxPanels 添加到主 GUI。它使我在模拟一侧的整个设置栏完全消失。我对此进行了测试,如果我在计算线程的开头添加部落,它会做同样的事情,所以这似乎是多线程和摆动的问题。任何想法是什么导致了这个或如何解决这个问题?我对此完全感到困惑。

tl; dr: 当我没有启动线程时,下面用于添加部落的代码可以正常工作,但是如果我在启动线程后尝试使用它,则 optionPanel 显示为空。

这是将 BoxPanels 添加到主 gui 的代码:

哦,我通过打印出内容的大小来测试它是否真的添加了它应该添加的内容,并且一切都匹配得很好,它只是不会绘制它们。

编辑:经过一番挖掘,它似乎真的是从线程更新摆动的事情。很多地方都建议使用 SwingWorker,但从我收集的有关它的信息来看,我认为它不适合我的程序,因为它是一个连续的模拟,而且我必须每帧都继续制作新的 SwingWorker。

EDIT2:尝试从线程中调用该方法,如下所示:

没有任何区别。我开始认为这是我如何使用 TribeBoxPanel 和 TribeSettingFrame 的问题。这些对象都只包含一个返回所需 BoxPanel 或 Frame 的方法。这个实现不好吗?如果是这样,创建动态 BoxPanel 和框架的更好方法是什么?

0 投票
2 回答
107 浏览

multithreading - Scala.swing 更新时冻结

所以我实际上不确定问题到底是什么。它可能与我处理线程的方式有关,但我不知道如何解决这个问题。

该程序是一个具有不同“部落”生物的简单生物模拟,我希望拥有它,以便当我创建一个新部落时它在 GUI 中有自己的面板。现在这在我启动线程之前完美运行,但之后它总是冻结。我知道 Swing 不是线程安全的,但我不确定如何解决这个问题。

这是添加面板的代码:

这是(可运行)线程的代码:

我试图在添加部落时停止线程,但这似乎不起作用,GUI 仍然冻结。我也尝试了 t.interrupt() (因为这是更好的方法),但这也不起作用。

编辑:我的问题可能是我试图从另一个不是 GUI2D 的对象(该方法所在的对象)调用 AddTribe 方法。也许如果我将所有代码粘贴到 GUI2D 类中它会起作用吗?

编辑2:尝试调用这样的方法:

但没有帮助,我试图添加东西的栏仍然冻结。

我还尝试打印出调用该方法的线程,这就是我得到的:

所以该方法是从 AWT 线程调用的,但它仍然冻结 GUI。所以线程不是我的问题?

编辑3:我想我发现了我的问题!其实是很倒退的。因为该方法在按下按钮时被调用 Swing 试图完成用于计算线程的代码,这就是导致它冻结的原因。现在我需要找出与 SwingUtilities.invokelater() 完全相反的东西

编辑 4:尝试创建一个新的可运行文件来运行该代码,但它仍然以某种方式从 AWT 线程中调用。这是什么原因以及如何让代码从计算线程中运行?

0 投票
1 回答
198 浏览

scala - 斯卡拉;(X)=>X 类型的表达式不符合 SupX 类型

我是一个玩 scala-swing 的 scala 新手。并想在 a 上翻译一个给定scala.swing.Pointscala.swing.event.MousEvent

我想将鼠标事件发送到负责处理形状选择的类。但是因为一个形状有一个相对于他的容器(sheet)的位置,但是 MouseEvent.point 是相对于窗口的,所以我应该在之前翻译/相对化它。

所以,我有一个Selection班级接受MouseEvents :

还有一个Sheet他的形状容器(并且知道如何翻译点)。

我可以用丑陋的演员绕过这个问题:

但后来我有另一个更奇怪的编译器问题:

错误:(32, 21) 类 MousePressed 中的方法副本缺少参数;如果您想将其视为部分应用的函数,请使用 `_' 遵循此方法

press.copy(point = relativize(pressed.point)).asInstanceOf[MousePressed]

在这里,我迷路了,需要你的帮助来完成这个简单的转换。

当然,所有方法都使用scala.swing._类型(并且永远不会在 scala.swing.java.awt.` 之间and混合

非常感谢

0 投票
0 回答
60 浏览

scala - scala-swing 中的 ReactiveX 不起作用?

我是reactivex的新手,并尝试将它与scala-swing一起使用。

我的代码很简单,但它不起作用:

依赖是:

奇怪的是控制台上没有打印任何东西!

我的代码有什么问题吗?

PS:现场项目在这里https://github.com/freewind/scala-swing-demo/blob/fc79c5b65e6fecc21d3894888d336d8f5204f62e/src/main/scala/scalaswing/HelloReactiveX.scala

0 投票
1 回答
48 浏览

scala-swing - 无法动态更改摆动窗口位置

我想更改 scala-swing 窗口的位置。我发现初始化时设置位置可以正常工作,但不能动态更改位置

我该怎么做?

0 投票
2 回答
189 浏览

swing - 如何在 scala.swing.Table 中添加 ComboBox 作为单元格编辑器?

我正在尝试为 Scala Swing 应用程序的第二列中的每个单元格添加 ComboBox 作为列单元格编辑器,并且很难做到。以下代码显示了我到目前为止所尝试的内容,请帮助我更改代码以实现任务。

更新:

刚刚发现类似的问题:如何在 Scala 的 Swing Table 中嵌入(工作)按钮?将尝试建议的方法。

0 投票
0 回答
135 浏览

swing - 是否可以在 Scala/Swing 中使用绝对组件定位?

我在 Scala 中使用 Swing "org.scala-lang" % "scala-swing" % "2.11.0-M7"。我想明确地为我的组件设置位置。可以在Swing API for Java中进行。

问题:是否可以在 Swing Scala API 中为组件设置绝对位置?

用于 Scala 的 Swing API 示例:

它是如何呈现的