Я решил написать код, который выводит строку на экран: 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);, текст выводится без проблем, но если их оставить, текст не выводится?
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);, текст выводится без проблем, но если их оставить, текст не выводится?