0

マーキー タグを使用する場合、JFrame のタイトル バーを HTML のマーキーのようにマーキーにするにはどうすればよいですか?

4

3 に答える 3

2

しないでください。

決定した場合、明らかな手法は、必要なテキストのサブシーケンスを使用してsetTitleを設定することです。Unicodeのさまざまな部分サイズのスペースを使用すると、少し滑らかにすることができると思います(または正方形として表示される場合があります)。

または、ウィンドウをPL&Fで装飾し(Sun / Oracle実装のネイティブPL&Fでは機能しません)、テキストを自分で描画することもできます。見栄えを良くするには、特定のPL&Fと構成に合わせて調整する必要があります。

于 2010-03-22T06:25:42.067 に答える
1

神は私に次のコードを許してください

ロード直後にマーキーを開始する場合は、このコードをフレームコンストラクターに配置します。

    int delay = 3000;
    int period = 50;
    Timer timer = new Timer();

    timer.scheduleAtFixedRate(new TimerTask() {
        int spaces=0;
        public void run() {
            String title="";
            for (int j = 0; j < spaces; j++) {
                title+= " " ;
            }
            title+= "Annoying";
            Main.this.setTitle(title);
            spaces=(spaces+1)%50;
        }
    }, delay, period);

更新
コメントによると、これはswing.Timerを使用した別のバージョンです

    Timer timer = new Timer(delay,new ActionListener(){

        int spaces=0;

        public void actionPerformed(ActionEvent e) {
            String title="";
            for (int j = 0; j < spaces; j++) {
                title+= " " ;
            }
            title+= "Annoying";
            Main.this.setTitle(title);
            spaces=(spaces+1)%50;

        }}
    );
    timer.start();

このコードは学習目的のみです。実際の製品では使用しないでください。

于 2010-03-22T13:35:27.757 に答える
0
int delay = 0;
int period = 500;
    t.scheduleAtFixedRate(new TimerTask(){
        String test = "  Test marquee";
        int i = 0;
        public void run(){
            titleChanger(test.substring(i, test.length()));
            i++;
            if(test.length()==i){
                i = 0;
            }
        }
    }, delay, period);


Timer t = new Timer();
public void titleChanger(String t){
this.setTitle(t);
}

これを試してみてください。そして、理解しやすくなります。

于 2013-05-22T08:36:17.630 に答える