Изменение шрифта строки в потоке - 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;

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


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

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

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