Re: [問題] 寫好的swing在不同OS下跑的問題
※ 引述《defsrisars (阿轉)》之銘言:
: 標題: [J2SE] 寫好的swing在不同OS下跑的問題
: 時間: Sat Oct 24 20:58:15 2015
:
: 如題
: 小的最近剛學swing
: 在macbook上用eclipse寫了一個很陽春的通訊錄
: jdk版本跟windows的桌電一樣是 8u65 64bit
: 只是選的OS不同
:
: 但是寫完以後在macbook跑一切正常
: 如圖
: http://i.imgur.com/j1cEo13.jpg


:
: 我用的元件都是很一般的JButton之類的東西
: 也有嘗試加repaint之類的程式碼
:
: 請問有人有概念這會是啥摸問題嗎
: 感激不盡QQ
:
: ---
: 附上程式碼給大家參考好了QQ
: 我對問題出在哪整個沒什麼概念..
: Java可攜性高 而且是跑在JVM 我的JDK版本也是相同的
: 跑在Windows和MAC上的程式碼也是一模一樣的
: 不知道問題是出在程式碼.compiler還是哪裡QQ
: Main
: http://pastie.org/10502060
: FrameInitialize
: http://pastie.org/10502064
: ButtonListener
: http://pastie.org/10502077
: BtnAddLis
: http://pastie.org/10502055
:
: 謝謝大家
: --
: ※ 編輯: defsrisars (1.165.77.155), 10/25/2015 17:06:46
: 推 yichen: http://pastie.org/10502055#32 把這行setVisible移到最下 10/25 18:11
: → yichen: 面加完所有panel之後試試看 10/25 18:12
: 天啊...可以了!!!
: 感覺是很基本的東西...
: 可以請問原理大概是什麼嗎QQ
: 我目前只能想像是因為他在setVisible(true)的時候繪畫
: 可是為什麼mac可以 windows卻會被這個影響呀
: 原來setVisible寫在最後面那麼重要...
在setVisible之後, JFrame就認為已經處理好畫面上的東西,所以除非當畫面需要重畫
例如視窗被拉大縮小,呼叫pack(), validate()等, JFrame不見得會主動重畫, 就算是新加物件
進去也一樣.
這個也不是mac就可以, windows就會被影響, 而是根本不能確認JFrame什麼時候會重畫
所以其實mac上是運氣好, windows上在執行的順序或是視窗剛好觸發要JFrame重畫的時候
可能windows上的畫面也會看起來OK
:
: 另外想請問
: 雖然元件都看的見了
: 可是TextArea卻無法輸入
: 我有試過在最下面加setVisible跟setEditable都還是無法
: 可以請問一下這個應該怎麼修嗎QQ
: 謝謝~~
:
: 謝謝您的提點!!
簡單的來說, 你沒有足夠的空間讓JTextPane去顯示
看到的結果:
http://i.imgur.com/33Cp9Mf.png

視窗拉大之後:
http://i.imgur.com/LNYBsyn.png

視窗拉寬之後:
http://i.imgur.com/yzBFkpC.png

另外, 如果只是要取得單行字串, 用JTextField就可以了, 殺雞不需要用牛刀
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.244.41.5
※ 文章網址: https://www.ptt.cc/bbs/java/M.1445837732.A.5E1.html
推
10/28 08:55, , 1F
10/28 08:55, 1F
推
10/28 08:59, , 2F
10/28 08:59, 2F
→
10/28 08:59, , 3F
10/28 08:59, 3F
→
10/28 09:00, , 4F
10/28 09:00, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章