国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java SwingWorkder使用實(shí)例

Java SwingWorkder使用實(shí)例

2019-11-20 15:25Java教程網(wǎng) JAVA教程

最近在學(xué)習(xí)Swing,我們都知道在UI表現(xiàn)線程里面長(zhǎng)時(shí)間執(zhí)行操作時(shí),畫(huà)面會(huì)假死,為了能夠讓費(fèi)時(shí)操作不影響畫(huà)面表現(xiàn),就需要用多線程了

首先考慮的就是Swing內(nèi)部的 SwingWorkder對(duì)象,但是網(wǎng)上現(xiàn)成的例子不好找,主要參照了網(wǎng)上的資料,自己整理了一個(gè)。

注意:SwingWorkder對(duì)象只能執(zhí)行一次,不能重復(fù)執(zhí)行!例如點(diǎn)擊開(kāi)始,結(jié)束后,就不能再次開(kāi)始了。

復(fù)制代碼代碼如下:

import java.awt.BorderLayout;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.concurrent.ExecutionException;
import javax.swing.*;
import javax.swing.SwingWorker;

public class SwingWorkerSample {

    public static void main(String[] args) {

        // 外觀定義
        try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Exception ex) {
        }

        // 窗體
        JFrame f = new JFrame("SwingWorker Sample");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 表示區(qū)
        final JTextArea taOutput = new JTextArea(15, 30);
        JScrollPane sp = new JScrollPane(taOutput);
        f.add(sp);

        // 底部進(jìn)度條
        final JProgressBar progressBar = new JProgressBar();
        f.add(BorderLayout.SOUTH, progressBar);

        // 開(kāi)始按鈕
        JButton b = new JButton("開(kāi)始");
        f.add(BorderLayout.NORTH, b);

        // 結(jié)束按鈕
        JButton b2 = new JButton("結(jié)束");
        f.add(BorderLayout.AFTER_LINE_ENDS, b2);

        // SwingWorker類
        final SwingWorker<Integer, int[]> sw = new SwingWorker<Integer, int[]>() {

            /** 執(zhí)行操作 */
            @Override
            protected Integer doInBackground() throws Exception {

                int sum = 0;

                if (!this.isCancelled()) {

                    for (int i = 1; i <= 10; ++i) {
                        sum += i;
                        publish(new int[] { i, sum });// 調(diào)用表示中間結(jié)果
                        setProgress(i * 10);// 進(jìn)度條
                        Thread.sleep(1000);
                    }

                }
                return sum;
            }

            /** 表示中間結(jié)果 */
            @Override
            protected void process(List<int[]> chunks) {
                StringBuilder sb = new StringBuilder();
                for (int[] values : chunks) {
                    sb.append(String.format("累加%d等于%d%n", values[0], values[1]));
                }
                taOutput.append(sb.toString());
            }

            /** 處理完成 */
            @Override
            protected void done() {

                if (this != null && !this.isDone()) {
                    try {
                        int result = get();
                        taOutput.append("完了。 合計(jì)" + result + "\n");
                    } catch (InterruptedException ex) {
                    } catch (ExecutionException ex) {
                    }
                }
            }

        };

        // 進(jìn)度條表示
        sw.addPropertyChangeListener(new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                if ("progress".equals(evt.getPropertyName())) {
                    progressBar.setValue((Integer) evt.getNewValue());
                }
            }
        });

        // 開(kāi)始按鈕事件
        b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                sw.execute();// 異步調(diào)用SwingWorkder
            }
        });

        // 結(jié)束按鈕
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (sw != null && !sw.isDone()) {
                    // Cancel
                    sw.cancel(true);
                }

                JOptionPane.showMessageDialog(null, "結(jié)束!");
            }
        });

        // 窗體表示
        f.pack();
        f.setVisible(true);
    }
}

延伸 · 閱讀

精彩推薦
423
主站蜘蛛池模板: 99精品视频在线观看 | 亚洲综合视频 | yiren22成人网 | 寡妇高潮免费视频一区二区三区 | 亚洲日本va中文字幕 | 在线欧美| 成人免费观看49www在线观看 | 日本中文字幕在线观看 | 成人久久久久久久 | 高清久久| 国产综合久久 | 中文字幕一区二区三区四区不卡 | 成人黄色av | 欧美成人一区二区三区片免费 | 欧美一区在线观看视频 | 日韩在线欧美 | 精品无码三级在线观看视频 | 亚洲一区二区中文 | 黄色国产精品 | 免费a级毛片在线看 | 青青草97| 午夜午夜精品一区二区三区文 | 羞羞的视频在线免费观看 | 欧美喷潮久久久xxxxx | 久久久久高清 | 欧美精品一区二区三区一线天视频 | 欧美伦理一区二区三区 | 毛片免费在线视频 | 一区免费看 | 日本在线视频一区 | 亚洲一区在线播放 | 中文字幕永久第一页 | 伊人激情综合网 | 99re在线免费 | 91精品国产欧美一区二区成人 | 日韩欧美中文字幕在线观看 | www久| 中文字幕一区二区三区在线视频 | 亚州av一区 | 精品美女久久久 | 国产色毛片 |