Изменение шрифта строки в потоке - Java

Узнай цену своей работы

Формулировка задачи:

Необходимо организовать движение строки, используя потоки. Строка должна доходить до границ окна и менять свой шрифт. Есть такой код, но здесь меняется не шрифт, а регистр символов.
Листинг программы
  1. import javax.swing.JApplet;
  2. import javax.swing.JPanel;
  3. import javax.swing.Timer;
  4. import javax.swing.SwingUtilities;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.Graphics;
  8. import java.awt.Dimension;
  9. import java.util.Random;
  10.  
  11. public class MovingString extends JApplet {
  12. public static final Dimension DIMENSION = new Dimension(600, 450);
  13. private static final int DX=10;
  14. private static final int DY = 10;
  15. private static final int SLEEP = 300;
  16. private String str = "Hello World!";
  17. private Timer tmr;
  18. private int xPos = DX;
  19. private int yPos = DY;
  20.  
  21. public void init() {
  22. try {
  23. SwingUtilities.invokeAndWait(new Runnable() {
  24. public void run() {
  25. setSize(DIMENSION);
  26. tmr = new Timer(SLEEP, new ActionListener() {
  27. public void actionPerformed(ActionEvent ae) {
  28. if ( ( yPos ) < DIMENSION.height ) {
  29. xPos = DX;
  30. yPos += DY;
  31. }
  32. else {
  33. tmr.stop();
  34. StringBuilder sb = new StringBuilder();
  35. Random rnd = new Random();
  36. for ( char c : str.toCharArray() )
  37. sb.append( ( rnd.nextBoolean() ) ? Character.toUpperCase(c) : Character.toLowerCase(c) );
  38. str = sb.toString();
  39. }
  40. repaint();
  41. }
  42. });
  43. getContentPane().add(new JPanel() {
  44. public void paintComponent(Graphics g) {
  45. super.paintComponent(g);
  46. g.drawString(str, xPos, yPos);
  47. }
  48. });
  49. }
  50. });
  51. }
  52. catch ( Exception e ) {
  53. System.err.println("Das Scheise!");
  54. }
  55. }
  56.  
  57. public void start() {
  58. tmr.start();
  59. }
  60. public void stop() {
  61. tmr.stop();
  62. }
  63. }
Подскажите, пожалуйста, что нужно изменить, чтобы менялся не регистр, а шрифт???

Решение задачи: «Изменение шрифта строки в потоке»

textual
Листинг программы
  1.  int[] styles = { Font.PLAIN, Font.ITALIC, Font.BOLD};
  2.  String[] _styles = {"Font.PLAIN", "Font.ITALIC", "Font.BOLD"};
  3.     Font font;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут