问题标签 [seesaw]

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 回答
1153 浏览

events - 功能事件驱动编程

我在使用 Clojure 和 Seesaw 以功能样式编写事件驱动的 GUI 代码时遇到问题。具体来说,我不知道如何在不使用全局变量或其他一些令人不快的黑客攻击的情况下传递程序的状态。我目前的方法是这样的:

它在相关组件上设置了一个事件侦听器,具有部分应用的功能来推进状态和更新 gui,包括删除旧的侦听器。尽管这似乎可行,但我并不喜欢它,部分原因是我无法在状态中传递侦听器本身(因为直到我已经定义了状态之后才构造它),因此删除旧的侦听器需要删除所有侦听器,这可能会随着程序的增长而导致问题。

我在网上找到的最接近的解决方案是在这个答案中,但我不知道如何将事件作为它显示的流来处理。我确信一定有比我目前的方法更好的解决方案,但我不知道是什么。

谁能告诉我如何在仍然遵循功能样式的同时响应用户输入事件?

0 投票
0 回答
317 浏览

user-interface - 单击按钮时弹出对话框(跷跷板)

我正在制作一个简单的 GUI 界面,用户可以在其中添加/删除一个人。我设置了我的 GUI,其中有一个People包含三个字段的表:NameAgeLikes.

我有一个按钮Add Person,我想弹出一个对话框。但是,我收到错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: No im plementation of method: :visible! of protocol: #'seesaw.core/Showable found for class: guidemo.core$add_person

我不知道在哪里使用该visible!选项。我的对话框有以下代码:

我从跷跷板 api 中得到了这个例子来开始自己做一些事情。我注释掉了框架,因为不允许在另一个容器顶部添加容器,我现在注释掉了其他字段。我知道“success-fn”不会向表格添加任何内容,但我更关心的是在单击按钮时出现弹出窗口。

我的按钮代码是:

我可以使用seesaw/inputs 创建一个带有一个字段的简单输入框,但是我想要一个带有三个字段的输入框。有没有解决的办法?(是的,我尝试了 3 个输入框,但它们一次弹出一个,而且非常不直观)

0 投票
1 回答
395 浏览

clojure - GUI 使用跷跷板

我正在尝试使用 Seesaw for Clojure 制作一个小窗口。我使用 Leiningen 创建了一个项目“样本”。

我已经在项目文件中添加了依赖项。

我的源文件如下:

但是当我运行它时,我不断收到错误消息:clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: No such namespace: dev, compiling:(C:\Users\A\sample\src\sample\core.clj:10:1)

0 投票
2 回答
484 浏览

clojure - 在clojure中如何刷新表数据

我有一个使用 seesaw.swingx 创建的表,我想刷新表行中的数据(或者甚至清除整个表并为其提供新数据)。我如何实现这一点,我知道我可能必须使用table/table-model,但是我如何将这个表模型提供给我当前的表?

我的表被创建为
(swingx/table-x :id :data-table :horizontal-scroll-enabled? true :model [:columns [{:key :first-name :text "First Name"} {:key :last-name :text "Last Name"}] :rows (get-data)]))

编辑:

所以这是我的处理程序,我想更新我的表

get-table-model的是

这样做我得到一个例外java.lang.IllegalArgumentException: No implementation of method: :make-widget* of protocol: #'seesaw.make-widget/MakeWidget found for class: seesaw.table.proxy$javax.swing.table.DefaultTableModel

0 投票
1 回答
197 浏览

user-interface - 如何在clojure中提供按钮的大小?

我是clojure的新手,我的gui使用跷跷板。我想知道如何在跷跷板上给出按钮(或任何小部件)的大小。

我已经尝试过

然后我将我的按钮包裹在一个seesaw/left-right-split. 当我这样做时,我的按钮占据了右侧面板的整个高度和宽度。我如何给它我想要的尺寸?

0 投票
1 回答
70 浏览

clojure - 在表格中显示列名

我创建了一个表“sampletable”。我正在尝试显示列的名称。我尝试添加文本,但仍然没有显示名称。

任何帮助,将不胜感激。

0 投票
1 回答
808 浏览

clojure - 如何从文本文件中读取字符串并在 clojure 中转换为地图?

我正在尝试使用 Clojure - Seesaw 从文件中读取并将字符串转换为映射(变量),以便我可以使用它们打印到 GUI。以下是我当前的代码:

我一直在弄清楚如何逐行读取 amovies.txt 中的字符串,然后用它创建一个地图。所需的输出应该类似于电影: Movie_Name 价格:5 id:1 数量:2

但在某种程度上,如果我说 :movie,它会引用电影的名称。

有人可以帮忙吗?感谢所有帮助!

0 投票
1 回答
50 浏览

graphics - 单独传递向量成员

我正在尝试将参数列表传递给polygon函数:

其中对:

通过 LazySeq 给出clojure.lang.LazySeq cannot be cast to java.lang.Number

我正在使用此功能配对

如何解开这个向量,以便编译器分别处理传递的参数

多边形签名:

0 投票
1 回答
258 浏览

clojure - 错误数量的争论clojure

我正在构建一个程序,该程序旨在允许用户计算字符串中的字母数或单词数,但是当通过 cmd 运行程序时,我得到一个 clojure.lang.ArityException,args 数量错误( 1) 传递给:core/-main/counter--5333

我的代码是

0 投票
1 回答
134 浏览

user-interface - 在跷跷板上按 :class 或 :id 选择

这是跷跷板教程:

当通过:class选择时,在:type中添加了一个点,所以我们得到了:.type,当通过id选择时,添加了一个#,所以我们得到了:#source,为什么会这样?