2016-10-22 3 views
0

Я пытаюсь создать тестовое окно с некоторым текстом на нем, когда я запускаю свой код, он не рисует строку. Я указал цвет для него. Может ли кто-нибудь помочь мне в этом?drawString не рисовать текст в окне

Here what it draws

import javax.swing.*; 
import java.awt.*; 

class Main 
{ 
    public static void main(String[] args) { 
     DrawFrame f = new DrawFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setVisible(true); 
    } 
} 
class DrawFrame extends JFrame 
{ 
    public DrawFrame(){ 
     setTitle("For Aylin"); 
     setSize(1280,720); 

     DrawPanel panel = new DrawPanel(); 
     Container cp = getContentPane(); 
     cp.add(panel); 
    } 
} 

class DrawPanel extends JPanel 
{ 
    public void paintComponents(Graphics g) 
    { 
     super.paintComponents(g); 
     g.setColor(Color.darkGray); 
     g.drawString("Hi", 100, 10); 
    } 
} 

ответ

3

Вы должны переопределить paintComponent метод не его метод в JPanel в paintComponents, поскольку они в течение двух очень разных целей. Первый краска сам компонент (что вы хотите), а второй получает дочерние компоненты, принадлежащие этому родителю, чтобы рисовать себя.

Также не забудьте изменить супервызов так, чтобы он соответствовал, и использовать аннотацию @Override выше метода.