为什么我的字符串不显示在窗口中?

时间:2013-06-21 02:02:24

标签: java string swing window jframe

我正在尝试创建一个简单的应用程序,该应用程序显示一个红色圆圈,单击该圆圈时会在其下显示不同的消息。我相信这部分代码:

g.drawString("DO NOT PRESS", 100, 100);

编码正确,但打开的窗口上没有显示任何文本。到目前为止,这是完整的代码:

import java.awt.Graphics;

import javax.swing.JFrame;

public class BigRedButton extends JFrame {

    public BigRedButton() {

        setTitle("Big Red Button");
        setSize(500, 500);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

    public void graphics(Graphics g) {

        g.drawString("DO NOT PRESS", 100, 100);
}
    public static void main(String[] args){

        new BigRedButton();
    }
}

1 个答案:

答案 0 :(得分:4)

  1. graphics中没有此类方法JFrame,因此没有任何方法可以调用它。
  2. 你应该避免直接涂在顶层容器上,除了其他外,它们不是双重缓冲的,并且在涂漆时会闪烁。相反,您应该创建一个自定义组件(从JPanel扩展)并覆盖它的paintComponent方法。
  3. 您应该花时间阅读Performing Custom PaintingPainting in AWT and Swing2D Graphics
  4. 此外,在您阅读时,您应该阅读Initial Threads

    <强>修订

    正如安德鲁所指出的那样,你应该使用@Override注释来确保你认为你重写的方法实际上是首先被覆盖的方法。这将阻止程序编译,并节省大量的时间,试图弄清楚为什么事情没有按照你期望的方式工作。