Изменение шрифта строки в потоке - Java
Формулировка задачи:
Необходимо организовать движение строки, используя потоки. Строка должна доходить до границ окна и менять свой шрифт. Есть такой код, но здесь меняется не шрифт, а регистр символов.
Подскажите, пожалуйста, что нужно изменить, чтобы менялся не регистр, а шрифт???
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.SwingUtilities;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import java.awt.Dimension;
import java.util.Random;
public class MovingString extends JApplet {
public static final Dimension DIMENSION = new Dimension(600, 450);
private static final int DX=10;
private static final int DY = 10;
private static final int SLEEP = 300;
private String str = "Hello World!";
private Timer tmr;
private int xPos = DX;
private int yPos = DY;
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
setSize(DIMENSION);
tmr = new Timer(SLEEP, new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if ( ( yPos ) < DIMENSION.height ) {
xPos = DX;
yPos += DY;
}
else {
tmr.stop();
StringBuilder sb = new StringBuilder();
Random rnd = new Random();
for ( char c : str.toCharArray() )
sb.append( ( rnd.nextBoolean() ) ? Character.toUpperCase(c) : Character.toLowerCase(c) );
str = sb.toString();
}
repaint();
}
});
getContentPane().add(new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString(str, xPos, yPos);
}
});
}
});
}
catch ( Exception e ) {
System.err.println("Das Scheise!");
}
}
public void start() {
tmr.start();
}
public void stop() {
tmr.stop();
}
}Решение задачи: «Изменение шрифта строки в потоке»
textual
Листинг программы
int[] styles = { Font.PLAIN, Font.ITALIC, Font.BOLD};
String[] _styles = {"Font.PLAIN", "Font.ITALIC", "Font.BOLD"};
Font font;