2015-01-13 10 views
0

Я хочу нарисовать строку, которую я беру из jtextarea, но я хочу рисовать с пространством 20px для каждой буквы, но я думаю, что не могу сделать это с помощью drawstring и я не могу нарисовать символ за время с помощью drawchars, так что я могу сделать?Как я могу разделить букву в строке при рисовании

Я хочу написать письмо над каждым следом, но, как я делаю знать не работает

public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 
    for(int i=0;i<PalavraAdivinha.length();i++) 
    { 
     g.fillRect(InicioTraco+(i*40), 240, 40, 5); 
    } 
    Font titulo = new Font("Arial",Font.BOLD,40); 
    g.setFont(titulo); 
    g.drawString("Adivinhe a palavra", 0,100); 
    if(PalavraDigitada != null) 
    { 
     g.drawString(PalavraDigitada, InicioTraco, 235); 
    } 
} 

благодарит парня.

+0

Вы можете рассмотреть возможность использования моноширинный шрифт. – khelwood

ответ

2

Вы можете нарисовать каждого персонажа отдельно. Получив FontMetrics, используемый в настоящее время объектом Graphics, вы можете измерить ширину каждого символа, чтобы вы могли продвигаться с использованием этой ширины и заданного разделения.

public static void drawString(Graphics g, String string, int x, int y, 
     int seperation) { 

    FontMetrics metrics = g.getFontMetrics(); 
    int drawx = x; 

    for (int i = 0; i < string.length(); ++i) { 
     String character = "" + string.charAt(i); 

     g.drawString(character, drawx, y); 
     drawx += seperation + metrics.stringWidth(character); 
    } 
} 

Пример кода

public static void main(String[] args) throws IOException { 
    BufferedImage image = new BufferedImage(512, 256, 
      BufferedImage.TYPE_INT_ARGB); 
    Graphics g = image.getGraphics(); 
    g.setColor(Color.BLACK); 
    for (int i = 0; i < 10; ++i) 
     drawString(g, "i am drawn with seperation " + i, 24, 24 + 16 * i, i); 
    ImageIO.write(image, "png", new File("output.png")); 
} 

Результат

Several strings with increasing amounts of seperation

+2

Приобретено для этой крутой картинки. – DaaaahWhoosh

+0

@DaaaahWhoosh thanks;) –

+0

@DaaaahWhoosh, мне понравилось, используя ur fuction, но все еще получая java.lang.NullPointerException у вас есть какие-то идеология? – user1258260

 Смежные вопросы

  • Нет связанных вопросов^_^