[JSE guide]Tạo hiệu ứng chữ nhấp nháy từng từ trên title

JackV

Administrator
Staff member
Code demo chạy nó sẽ nhấp nháy như thế này
Cong

Dong

Java

.

com

CongDongJava.com
Mỗi từ và phần trống xuất hiện 0.5s
PHP:
import javax.swing.JFrame;

/**
 *
 * @author <JackV at congdọngava.com>
 */
public class CongDongJava extends JFrame {

    public CongDongJava() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,30);
        setLocationRelativeTo(null);
        new ViewTitleThread();
    }
    String[] arrText = new String[]{"Cong", "", "Dong", "", "Java", "", ".", "", "com","","CongDongJava.com","",""};
    int iCount = -1;

    class ViewTitleThread extends Thread {

        public ViewTitleThread() {
            start();
        }

        public void run() {
            while (true) {
                try {
                    iCount++;
                    if (iCount == arrText.length) {
                        iCount = 0;
                    }
                    setTitle(arrText[iCount]);
                    sleep(500);
                } catch (InterruptedException ex) {
                }
            }
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new CongDongJava().setVisible(true);
    }
}
Bây giờ chúng ta hiện thực cho nó nháy có chủ đích hơn, vì chúng ta quảng cáo tên miền mà. Thời gian hiện thị sẽ đổi như sau:
Cong 1s
Dong 1s
Java 1s
. 0.5s
com 0.5
CongDongJava.com 2s

các lần trống là 0.5s

Bạn thử xem, cố gắng hiện thực sao cho dễ tùy chỉnh khi chúng ta đổi chữ.
 
  • Like
Reactions: quangbeo216

tranhuyvc

Administrator
Staff member
21/1/10
6,248
230
63
Ðề: Demo tạo chữ nhấp nháy từng từ trên title

Sáng tạo nhỉ, dùng thread tạo chữ nhấp nháp luôn ^_^
 

JackV

Administrator
Staff member
Ðề: Demo tạo chữ nhấp nháy từng từ trên title

Sáng tạo nhỉ, dùng thread tạo chữ nhấp nháp luôn ^_^
Dùng cái timer như bạn đã làm cũng được nhưng tớ không biết nó có cho đổi time trong lúc đang chạy như Thread hay không và cấu trúc nó phúc tạp dùng hơn Thread thì phải.
 

kenzso

New Member
23/5/10
267
5
0
Ðề: Demo tạo chữ nhấp nháy từng từ trên title

Dùng cái timer như bạn đã làm cũng được nhưng tớ không biết nó có cho đổi time trong lúc đang chạy như Thread hay không và cấu trúc nó phúc tạp dùng hơn Thread thì phải.
Có cách khác không. Hiệu ứng kiểu này chắc die con CPU quá.
 

kekedaine

Member
5/3/11
76
1
8
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

hay quá !!!
 

pr0t0ss9x

New Member
10/3/11
18
0
0
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

quá sáng tạo :">
 

JackV

Administrator
Staff member
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Còn yêu cầu mở rộng là
... hiện thực cho nó nháy có chủ đích hơn, vì chúng ta quảng cáo tên miền mà. Thời gian hiện thị sẽ đổi như sau:
Cong 1s
Dong 1s
Java 1s
. 0.5s
com 0.5
CongDongJava.com 2s

các lần trống là 0.5s
bạn nào có khả năng hiện thực giao lưu nhé.
 

Gacon

New Member
17/3/11
2
0
0
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

good Job !
 

sayuri0903

Member
8/1/11
116
9
18
Việt Nam :D
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Mình mới gà mờ học java, "thực hiện giao lưu" vs JackV thế này nhé :D

PHP:
//Thêm một mảng chứa thời gian
int[] time = new int[]{1000,500,1000,500,1000,500,500,500,500,500,2000,500,500};
...
//Sữa lại cái method sleep nữa :D
sleep(time[iCount]);
Đúng yêu cầu chưa :x
 

nguyenson197

Member
5/12/11
202
21
18
Thái Bình
khmt1-k4.com
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Việc tạo lớp extends Thread có khác gì với việc không tạo và sử dụng nó luôn như đoạn mã của mình không.

PHP:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;

/**
 *
 * @author NguyenVanSon
 */
public class MyMarque extends JFrame{
    public MyMarque(){
        this.setSize(200, 1);
        this.setVisible(true);
        for (int i = 0;; i++) {
            this.setTitle(String.valueOf(i));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(MyMarque.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
    }
    public static void main(String[]args){
        new MyMarque();
    }
}
 

duythinht

New Member
12/8/11
16
0
1
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Việc tạo lớp extends Thread có khác gì với việc không tạo và sử dụng nó luôn như đoạn mã của mình không.

PHP:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;

/**
 *
 * @author NguyenVanSon
 */
public class MyMarque extends JFrame{
    public MyMarque(){
        this.setSize(200, 1);
        this.setVisible(true);
        for (int i = 0;; i++) {
            this.setTitle(String.valueOf(i));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(MyMarque.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
    }
    public static void main(String[]args){
        new MyMarque();
    }
}
Thread sẽ bị chiếm dụng và bạn sẽ không làm được gì hết cho đến khi thoát ra khỏi vòng lặp. Not responding detectation :-@
 

nguyenson197

Member
5/12/11
202
21
18
Thái Bình
khmt1-k4.com
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Uk. Mình hiểu rồi. Thanks.
Tạo cái ra 1 luồng để nó xử lý cái chữ nhấp nháy đó, còn lại mình muốn chạy gì thì chạy. Đoạn mã mình viết chỉ dùng cho mỗi tiêu đề nhấp nháy thôi. :D
 

hongtamtk

Member
22/1/12
115
7
18
29
me.zing.vn
Ðề: Tạo hiệu ứng chữ nhấp nháy từng từ trên title

Trong Java thì mình mới học, được biết java chạy đa nhân, chư như VB 6 là chết rồi, khi nào thực hiện xong vòng lặp đó mới. thực hiện típ. Tóm lại chương trình của bạn chỉ có chức năng làm nháy tiêu đề. còn con chức nawg nào khác :D
 

devtttq

New Member
20/11/17
14
4
3
24
nó cứ chạy liên tục như thế liệu có treo máy không cpu đạt tới giới hạn không và mình thấy while(true) là vô hạn rồi.
 

JackV

Administrator
Staff member
nó cứ chạy liên tục như thế liệu có treo máy không cpu đạt tới giới hạn không và mình thấy while(true) là vô hạn rồi.
Không có sleep
> Thread.sleep(1000)
thì cpu sẽ đạt mức cao nhưng k đến nỗi treo máy vì máy ảo sử dụng tài nguyên có hạn mà thôi.
 

devtttq

New Member
20/11/17
14
4
3
24
Không có sleep
> Thread.sleep(1000)
thì cpu sẽ đạt mức cao nhưng k đến nỗi treo máy vì máy ảo sử dụng tài nguyên có hạn mà thôi.
Khi biên dịch ra chương trình exe để chạy, cũng không treo sao anh jack