日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  于是開心地升級到了V1.1版本

  等我先消化下知識再來更新。

  關鍵在于面板的setPreferredSize(Dimension d)方法和框架的pack()方法。

========================================================================================

  大概就是說,用了布局管理器的話,管理器會根據preferredSize來安排控件大小,用setSize的話不一定會起作用,所以我之前直接改變面板的大小然后pack框架,最后出來的效果是框架高度變成0,大概就是因為preferredSize默認是0。………………對么?

  總之,用setPreferredSize才是正確的設定面板大小的方法。

  至于pack,就是根據框架內容來重新計算框架大小,似乎是很智能,所以不用想太多。

?

  按照我以前的做法,結果就是打開了文件之后按照圖片大小改變框架大小,然后面板就因為布局管理器而自動擴大,但是圖大框架大,它框架還包含邊框啊,于是能用來顯示的地方就小,于是圖就擠到窗口外面了。

  現在呢,打開了文件之后我按照圖片大小設置面板大小,這樣面板就擠出去了,然后再調用框架的pack方法,自動按照內容物大小來擴大框架,就不用擔心邊框的問題了,于是就搞定了。

?

  不過還有一個問題搞不懂。

public void actionPerformed(ActionEvent e) {Image img;if ((img = getImage()) != null) {parent.getPanel().setImage(img);parent.getPanel().setPreferredSize(new Dimension(img.getWidth(parent), img.getHeight(parent)));parent.pack();} else {return;} }

  我之前在setImage之后還加了一句repaint(),然后發現注釋掉也不影響顯示,就刪掉了。

  于是現在我只是用setImage方法改變了面板的屬性,就是一個圖片對象的引用,那它到底是什么時候重新繪制內容的?

  請自行腦內配上少年包青天的那個懸疑BGM。

  我找來了,不謝。

轉載于:https://www.cnblogs.com/chihane/p/3502808.html

總結

以上是生活随笔為你收集整理的于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。