📄 ch15l02.txt
字号:
Listing 15.2 The SpinText implementation.import java.awt.*;public class SpinText implements Runnable{ Thread myThread; String msg; String outStr; char spinChar; int cols; int inSpin; long sleepDelay; Graphics g; boolean inBlock; boolean charInSpin[]; char displayLine[]; public SpinText() { } public SpinText(String m, Long sleepDIn, Graphics gIn) { g = gIn; sleepDelay = sleepDIn.longValue(); cols = m.length(); msg = m; displayLine = new char[msg.length()]; spinChar = ' '; charInSpin = new boolean[cols]; for(int i = 0; i < cols; i++){ charInSpin[i] = true; displayLine[i] = spinChar; } inSpin = cols; inBlock = true; } public void run(){ inSpin = cols; spinChar = ' '; g.setFont(new Font("Courier", Font.PLAIN, 12)); while(inSpin > 0){ int i; for(i = 0; i < cols; i++){ if(charInSpin[i] == true){ displayLine[i] = spinChar; if(msg.charAt(i) == spinChar){ charInSpin[i] = false; inSpin--; } } } outStr = new String(displayLine); this.paint(g); switch(spinChar){ case(' ') : spinChar = 'a'; //start with the lower-case letters break; case('z') : spinChar = '.'; //roll over to punctuation -- note that I //skip exclamation pt., quote marks, and //some others break; default: spinChar++; } try{ Thread.sleep(sleepDelay); }catch (Exception e){ return; } } inBlock = false; } public void paint(Graphics g){ g.clearRect(0, 0, 300, 300); g.drawString(outStr, 100, 100); } public boolean inBlock(){ return inBlock; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -