【问题标题】:drawString not drawing text on windowdrawString 不在窗口上绘制文本
【发布时间】:2016-10-22 16:47:40
【问题描述】:

我正在尝试创建一个带有一些文本的测试窗口,当我运行我的代码时,它不会绘制字符串。我为它指定了颜色。有人可以帮我解决这个问题吗?

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);
    }
}

【问题讨论】:

    标签: java string swing window


    【解决方案1】:

    您应该覆盖 JPanel 的 paintComponent 方法而不是它的 paintComponents 方法,因为它们用于两个非常不同的目的。第一个绘制组件本身(你想要的),而第二个让这个父级持有的子组件绘制自己。

    还要记住更改超级调用以使其匹配,并在方法上方使用@Override 注释。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      相关资源
      最近更新 更多