Tôi đã chuyển sang sử dụng OpenGL thông qua Penumbra để cố gắng vẽ trực tiếp trên JPanel bằng ngữ cảnh Đồ họa của nó. Điều này sẽ là tuyệt vời, ngoại trừ tôi đang gặp một số rắc rối ... Tôi biên dịch mã của tôi, và ~ 1 lần trong số 25, đồ họa (đó là một hình chữ nhật cho ví dụ) vẽ tốt. Người kia ~ 24 lần, nó không.Điều kiện chủng tộc (?) Khi sử dụng Swing
Dưới đây là mã của tôi:
(def main
(let [frame (JFrame. "This is a test.")
main-panel (JPanel. (GridBagLayout.))
tpan (proxy [JPanel] [] (getPreferredSize [] (Dimension. 600 400)))]
(doto frame
(set-content-pane
(doto main-panel
(grid-bag-layout
:gridx 0 :gridy 0
tpan
:gridx 0 :gridy 1
xy-label)))
(pack-frame)
(set-visible))
(draw-line tpan Color/RED 250 250 50 50)))
Chức năng draw-line
là dưới đây:
(defn draw-line [panel color x y w h]
(let [graphics (.getGraphics panel)]
(doto graphics
(.setColor color)
(.drawRect x y w h))))
Tôi không có ý tưởng những gì đang xảy ra. Lúc đầu, tôi nghĩ rằng đó là refs tôi đã làm việc trên, nhưng sau đó tôi đã đưa những người ra, và vẫn còn có những vấn đề này. Tôi cũng đã đặt lại lein và slime/swank và emacs. Tôi khá bối rối.
Như thường lệ, mọi trợ giúp sẽ được đánh giá cao. Tôi hy vọng đây là một câu hỏi với một câu trả lời! Gần đây, tôi dường như đang yêu cầu điều không thể được :)
Tuyệt vời, cảm ơn bạn! Bất kỳ đề xuất về bắt đầu từ đâu? (Và, cho điểm thưởng, bất kỳ ý tưởng mà tôi có thể đang đi lạc khỏi EDT?) – Isaac
Tôi sợ tôi không biết đủ về khuôn khổ bạn đang sử dụng - Tôi không nhận ra cú pháp ngoại trừ để có thể nói rằng đó là khai báo. Một (gây phiền nhiễu) điều bạn có thể làm là phân lớp tất cả các điều khiển bạn sử dụng, ghi đè lên các phương pháp bạn có thể sử dụng và để chúng xuất ra chuỗi hiện tại. Một khả năng khác là ở phần đầu của đường vẽ, nó in ra tên luồng đó và xem nó có chứa các chữ cái AWT hay không. Sau đó, tôi chỉ không biết đủ về mã của bạn. –