下面列出一些在神馬聊天裏面使用的幾個swing新手小技巧:
1.如何繪製背景?
你可能想到的是貼張圖片整個UI後面不就好了嗎?但是又發現我去,沒有貼圖片的控件!那該怎麼做呢?
答案很簡單,重寫一個自己JPanel,讓這個JPanel去繪製底層的背景不就好啦~
下面貼出代碼:
public class MyJPanel extends JPanel {
private String imgPath;
public MyJPanel(LayoutManager layout,String imgPath) {
super(layout);
this.imgPath=imgPath;
}
/**
* 繪畫控件 paintComponent 不是printComponent
* 重寫該方法,將會繪製控件的背景
*/
@Override
protected void paintComponent(Graphics g) {
if(imgPath==null || imgPath.isEmpty())
return;
//通過icon獲取圖片
ImageIcon icon=new ImageIcon(imgPath);
Image img=icon.getImage();
g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), null);
}
public String getImgPath() {
return imgPath;
}
}
2.我不想使用Swing自帶的流式佈局,相對佈局神馬亂七八糟的,我是新手!我就只是拖一拖控件!
想要擺脫swing的中layout的控件束縛,讓控件擺放在自己想要的位置該怎麼做呢?
答案也很簡單,既然不想使用layout,那麼在new JPanle的時候填寫layout的參數爲 null 就可以輕鬆解決這個問題!(當然這樣做佈局就是寫死的了無法做到自動適應)
下面貼出代碼:
JPanel contentPane = new JPanel(null);
3.我想貼個圖片,他不能太大,要按照我的大小來,而且他要可以擺放在任意位置,就像一個頭像那樣,這又該怎麼做呢?
既然要一個可以自己控制大小的圖片,那麼肯定不能使用上面重寫 paintComponent的方法啦~
實際上使用Swing自帶JLable爲其設置Icon就可以解決這個問題!(同時Swing自帶JLable也是可以支持gif圖片播放,小的gif還可以,大的可能就慘不忍睹了。。。)
下面貼出代碼:
JLabel logo_label = new JLabel();
logo_label.setIcon(new ImageIcon(Constants.logo));// 將你自己的圖片使用ImageIcon來轉化
logo_label.setBounds(130, 10, 301, 161);// 設置你的JLable擺放的位置
4.如果你和小豪一樣不喜歡Swing 的風格而是,更傾向與比較順眼的Windows該怎麼做呢?
首先Swing自己是支持更改風格的(happy!),只要一句代碼就可以解決這個問題(so happy!)
下面貼出代碼:
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
是不是很簡單呢!但是這句話一定要放在整個JFrame初始化之前使用,也就是說你最好把它放在你的構造函數裏,並且做最好在你開始佈局之前!否則是沒有效果的!
5.等等。。。
還有很多新手使用Swing會用到的小技巧,在此不能一一例舉了(非常抱歉,因爲記不住啊。。。),Swing的特效還是需要大家自己嘗試,雖然Swing沒有多少人使用,但是隨着java的普及更多的同學可能會選擇Swing來完成自己在Windows上的桌面應用開發。同時這些Swing小技巧也會讓自己的代碼更加優(sheng)雅(xin),所以希望苦於Swing太不好用的同學可以嘗試着在自己的代碼中使用這些小技巧吧!
最後:使用eclipse 的同學在寫UI時請使用 windowbuilder插件來輔助自己的界面編寫!
windowbuilder打開Frame類:
插件編輯UI的界面:
如果你的eclipse 這些東西請自行安裝 windowbuilder 插件!
安裝方法(這裏小豪就按照百度的來貼出了,可能會和大家的有些不同):
首先,需要知道自己的Eclipse是什麼版本的.可以到Eclipse的安裝目錄下用記事本打開.eclipseproduct文件,version後面對應的就是版本號
打開http://eclipse.org/windowbuilder/download.php,裏面有Update Sites,下面有Eclipse Version,Release Version,Integration Version欄目.選擇對應版本的link.複製URL地址
打開Eclipse,選擇Help→Install New Software,在work with裏面把得到的URL複製進去.勾選所有,點擊Next安裝就好了.是已經安裝過的,所以按鈕是灰色的
然後新建項目,New→Project→WindowBuilder→SWT Designer→SWT/JFace Java Project
然後建立一個包,在建類的時候選擇New→Other,選擇WindowBuilder→Swing Designer→Application Window.類建好之後點擊Design就可以進行可視化編輯了