我试图制作一个带有一些文字的测试窗口,当我运行我的代码时,它不会绘制字符串。我为它指定了颜色。有人可以帮我吗?
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);
}
}
答案 0 :(得分:3)
你应该覆盖JPanel的paintComponent
方法,而不是它的paintComponents
方法,因为它们有两个非常不同的目的。第一个绘制组件本身(你想要的),而第二个绘制由这个父组件持有的子组件来绘制自己。
还要记住更改超级调用以使其匹配,并使用方法上方的@Override
注释。