神馬聊天——Swing使用的一些小技巧

下面列出一些在神馬聊天裏面使用的幾個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就可以進行可視化編輯了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章