神马聊天——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就可以进行可视化编辑了

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