`
lippeng
  • 浏览: 455071 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Clojure Seesaw 写一个Outlookbar

 
阅读更多

outlook 左侧的设计挺好,不确定这种设计是不是从outlook开始的,想到这样的设计的时候,很自然的想到outlook,姑且叫它outlook bar吧!

在学习Clojure和Seesaw,就写了一个,放在这里,有谁需要,随便拿去:

 

(ns com.gui
  (:use [seesaw core]))


(defn outlook-bar
  "Create a simple outlook bar.
   args: coll is a vector like this:
         [{:index 0, :btn-text 'first-button', :content (button :text 'this is first content.')},
         {:index 1, :btn-text 'second-button', :content (button :text 'this is second content.')}]
   return a outlook bar panel
   "
  ([coll]
    (outlook-bar (border-panel) coll (-> coll first :index )))
  ([bar coll index]
    (let [top (take (inc index) coll),
          center (nth coll index),
          bottom (drop (inc index) coll),
          composer (fn [item] (action :name (:btn-text item),
                                :handler (fn [e] (outlook-bar bar coll (:index item)))))]
      (doto bar (.removeAll))
      (config! bar
        :north (grid-panel
                 :rows (count top),
                 :columns 1,
                 :items (map composer top)),
        :center (scrollable (:content center)),
        :south (grid-panel
                 :rows (count bottom),
                 :columns 1,
                 :items (map composer bottom)))
      (doto bar (.revalidate) (.repaint)))))


; ====================   test outlook-bar =======================
;(def nav
;  [{:index 0 :btn-text "first", :content (text "this is first content.")},
;   {:index 1 :btn-text "second", :content (label :text "this is second content.")},
;   {:index 2 :btn-text "third", :content (button :text "this is third content.")}
;   ])
;
;(defn olb []
;  (-> (frame :title "Hello world!", :content (outlook-bar nav),
;        :on-close :dispose )
;    pack!
;    show!))
;
;(olb)

; ====================   test outlook-bar =======================

 

分享到:
评论

相关推荐

    Selmer, 在Clojure中,一个快速Django 启发的模板系统.zip

    Selmer, 在Clojure中,一个快速Django 启发的模板系统 Selmer 一个快速的 Django 插件,为Clojure激发模板系统。安装命令行 Leiningen 备忘文档备注文档用法 跳转到筛选器内置过滤器add count count? not-empty f

    seesaw-gui-application:使用Clojure和Seesaw制作的简单GUI

    如何做一个? 该GUI是使用Netbeans IDE及其内置的Window Builder制作的。 脚步: 使用Leiningen或Boot创建Clojure项目,例如在Leiningen : lein new app my-gui-project 编辑您的project.clj ,将[seesaw "LATEST"]...

    Clojure调用Java类的一个实例

    在上述代码中,`clojure.java.jdk`是一个Clojure库,提供了对Java JDK的便捷访问。`class-for-name`函数用于加载并返回指定类的Class对象,然后我们可以通过`.sayHello`调用实例的方法。 此外,Clojure还可以处理...

    Python-Nightlight一个Clojure嵌入式编辑器

    Python-Nightlight 是一个独特的项目,它将Clojure编程语言的交互式环境嵌入到Python应用程序中,为开发者提供了一个集成的开发体验。这个编辑器设计的目标是促进Clojure代码的编写、测试和调试,特别是在Python环境...

    Practical Clojure.pdf

    根据提供的文件内容,我们可以提取出以下关于Clojure语言的知识点: Clojure是一种编程语言,它...希望这本书能够为读者打开Clojure的门,就像它为作者所做的那样,并且展示Clojure作为一个有趣、表达性和成熟的语言。

    Python-Clojurecademy一个交互式平台提供基于Clojure的课程

    Python-Clojurecademy是一个独特的在线学习平台,专注于教授Clojure编程语言。它借鉴了Codecademy的成功模式,为用户提供了一个交互式的环境,使学习者能够实时实践Clojure代码,从而增强他们的编程技能。Clojure是...

    clojure1.3.0及资料

    4. **Clojure 1.4.0 Alpha2**: "clojure-clojure-clojure-1.4.0-alpha2-12-gec59eba.zip"是Clojure 1.4.0的一个早期预览版本。这个版本可能包含了1.3.0之后的进一步改进和新功能,对于关注Clojure演进的开发者来说,...

    Python-利用Clojure实现的一个可拖放的看板示例

    标题中的"Python-利用Clojure实现的一个可拖放的看板示例"表明这是一个结合了Python和Clojure技术的项目,旨在创建一个可交互式的看板应用,支持用户通过拖放操作来管理任务或信息。看板在项目管理和敏捷开发中广泛...

    Clojure编程乐趣]+clojure_programming.pdf

    Clojure的设计目标是提供一个高效、并发、可移植的环境,适合解决现代软件开发中的复杂问题。在这个“Clojure编程乐趣”中,我们将深入探讨Clojure的核心概念和特性。 首先,Clojure强调函数式编程,这意味着程序被...

    clojure eclipse

    在Eclipse中使用Clojure开发,你需要安装Leiningen,这是一个Clojure项目管理工具,它可以帮助你创建、构建和管理Clojure项目。Leiningen能够生成项目的骨架结构,包含必需的依赖和配置文件,使得开发者可以快速开始...

    clojure电子书

    《Clojure电子书》集合包含了三本关于Clojure编程的重要书籍和一个Leiningen的Windows安装程序,这对于学习和深入理解Clojure语言至关重要。Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,...

    clojure-1.10.2-alpha2.jar

    Clojure还有一个特色是软件事务存储(Software Transactional Memory,STM),其支持用事务代替锁和互斥器来更新共享内存。STM还是一个有争议的技术,还需要更好的证明自己,一个简单的办法就是访问一个JVM上的实现...

    Clojure入门教程- Clojure – Functional Programming for the JVM中文版

    ### Clojure入门教程知识...- 对于希望深入了解函数式编程或在JVM上寻找高效编程解决方案的开发者而言,Clojure是一个值得探索的选择。通过实践和社区的支持,学习者可以快速掌握Clojure的核心概念并应用于实际项目中。

    Programming Clojure 英文电子版

    《Programming Clojure》是一本深入探讨Clojure编程语言的书籍,该书由Stuart Halloway编写,出版于2009年3月,由Pragmatic Bookshelf出版社发行。本书共200页,主要介绍了Clojure作为一种现代编程语言的独特魅力...

    clojure cookbook.html

    根据https://github.com/clojure-cookbook/clojure-cookbook的描述,将cookbook的代码转换为了html文档,供方便下载。

    clojure1.6

    Clojure 1.6 是一个基于 Lisp 语系的现代函数式编程语言,它运行在Java虚拟机(JVM)上。Lisp是一种历史悠久且影响力深远的编程范式,以其特有的括号语法和强大的宏系统著称。Clojure的设计目标是提供一种与Java平台...

    Clojure可选类型系统TypedClojure.zip

    Typed Clojure 保留了 Clojure 的优势,是 Clojure 的可选类型系统,也可以说是 Clojure 的一个库,改善了大量的静态类型安全检测。主要特性:从 Java 中保护你的 Clojure 程序,进行安全的互操作,正确的使用外部 ...

Global site tag (gtag.js) - Google Analytics