您的位置:首页 > 产品设计 > UI/UE

Java GUI之初见JProgressBar

2016-09-29 09:44 471 查看
进度条对于做UI界面来说是不可或缺的组件,原因如下:图形化界面客户端启动需要加载诸多配置资源,而进度条作为程序主界面展示之前的缓冲,

提高用户的体验感觉,而且进度条还可以做音乐播放器的播放进度,声音的高低刻度等等。

今天主要介绍的是Java GUI组件JProgressBar的运用,以下是界面展示效果。



   //窗体以及组件初始化代码

    frame = new JFrame("install")

    //设置窗体布局

    frame.setLayout(new BorderLayout());

    //设置文本标签组件 文本内容居中

    label = new JLabel("progress",SwingConstants.CENTER);

    //进度条
progressbar = new JProgressBar();
progressbar.setOrientation(JProgressBar.HORIZONTAL);
progressbar.setMinimum(0);
progressbar.setMaximum(100);

    //设置进度条的值
progressbar.setValue(0);
//progressbar.setStringPainted(true);

        //监听进度条变化事件
progressbar.addChangeListener(this);
progressbar.setPreferredSize(new Dimension(300, 10));
progressbar.setBorderPainted(false);
progressbar.setBackground(Color.pink);
JPanel progressPane = new JPanel();
progressPane.add(progressbar);
progressPane.setPreferredSize(new Dimension(300, 10));
JPanel panel = new JPanel();
b = new JButton("install");
stop = new JButton("pause");
b.setForeground(Color.blue);
b.addActionListener(this);
stop.addActionListener(this);
panel.add(b);
panel.add(stop);
// timer=new Timer(100,this);
timer = new Timer(1000/10, this);
frame.add(panel, BorderLayout.NORTH);
frame.add(progressPane, BorderLayout.CENTER);
frame.add(label, BorderLayout.SOUTH);
// frame.pack();
frame.setBounds(100, 100, 400, 130);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

       //按钮点击事件:

       public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
timer.start();
}
if (e.getSource() == stop) {
timer.stop();
}
if (e.getSource() == timer) {
int value = progressbar.getValue();
if (value < 100) {
progressbar.setValue(++value);
} else {
timer.stop();
frame.dispose();
}
}
}

       //进度文本展示代码:

       public void stateChanged(ChangeEvent e) {
int value = progressbar.getValue();
if (e.getSource() == progressbar) {
label.setText("current progress:" + Integer.toString(value) + "%");
label.setForeground(Color.blue);
}
}

源码地址:https://github.com/followwwind/javase

一点拙见,望看官笑纳!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java gui ui JProgressBar