私は絶対的な位置付けが必要な小さなアプリケーションを作成しています - 私は一見醜い回避策で欲しいものを得ることができますが、このコードを同じように維持する方法を知りたいのですが機能性。Clojure + Swingアブソリュート位置決めの問題
問題は、(.setBounds ..)s-exprsのいずれかを省略すると、JPanelがJFrame全体を埋めてしまうことです。事前のおかげで、ここで働いているサンプルコードは:
...
(:import [javax.swing JFrame JPanel]
[javax.swing.border LineBorder]
[java.awt Color])
(defn frame []
(let [top-panel (doto (JPanel.)
(.setOpaque true)
(.setVisible true)
(.setBounds 25 25 250 75)
(.setBorder (LineBorder. (Color. 255 0 0 255))))
frame (doto (JFrame.)
(.setLayout nil)
(.setResizable false)
(.setSize 300 625)
(.setVisible true)
(.setContentPane top-panel))]
(.setBounds top-panel 25 25 250 75)))
で.contentPaneを交換し、私が探していた機能を提供しますか? "frame"という名前の関数と、 "frame"と呼ばれるlet内のローカルも定義しています。それがあなたの意図ですか? – clartaq
@clartaq私はそれに何か悪いことは表示されません。 – amalloy
@amalloy:うん、何も間違っていない。その行動について混乱があったかどうかだけ疑問に思った。 – clartaq