Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему нет шрифта?

LuluKulu Bababa Ученик (72), на голосовании 6 месяцев назад
Я решил написать код, который выводит строку на экран:
import javax.swing.*;
import java.awt.*;
public class Main extends JFrame {
public static Main display;
public static String str = "Hello";
public static void main(String[] args) {
display = new Main();
display.setSize(500,500);
GameField gameField = new GameField();
display.add(gameField);
display.setVisible(true);
display.setResizable(false);
display.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void onRepaint(Graphics g){
Font f = new Font("Arial",14,Font.BOLD);
g.setFont(f);
g.setColor( Color.BLACK );
g.drawString(str,125,125);
}
private static class GameField extends JPanel{
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
onRepaint(g);
repaint();
}
}
}
Почему если убрать строки Font f = new Font("Arial",14,Font.BOLD); и g.setFont(f);, текст выводится без проблем, но если их оставить, текст не выводится?
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249256) 7 месяцев назад
Вот сигнатура конструктора шрифта:
 public Font(String name, int style, int size) 
Стиль идет вторым аргументом, а размер - третьим.
У вас стиль 14 (неопределенный), а размер BOLD = 1 (один пункт - меньше пикселя).

Попробуйте так:
 Font f = new Font("Arial", Font.BOLD, 14); 
Похожие вопросы