Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';我的字符串是否显示在窗口中?_Java_String_Swing_Window_Jframe - Fatal编程技术网

Java 为什么不是';我的字符串是否显示在窗口中?

Java 为什么不是';我的字符串是否显示在窗口中?,java,string,swing,window,jframe,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 BigRedB

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

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();
    }
}
  • JFrame
    中没有这样的方法
    graphics
    ,因此没有调用它
  • 您应该避免直接绘制顶级容器,除此之外,它们不是双缓冲的,在绘制时会闪烁。相反,您应该创建一个自定义组件(从类似
    JPanel
    的东西扩展)并覆盖它的
    paintComponent
    方法
  • 你应该花时间通读一遍,然后
  • 此外,当你阅读时,你应该有一个通读

    修正案

    正如Andrew所指出的,您应该使用
    @Override
    注释来确保您认为要重写的方法实际上就是首先被重写的方法。这将阻止程序被编译,并节省大量的时间,试图找出为什么事情不能按预期的方式运行

  • JFrame
    中没有这样的方法
    graphics
    ,因此没有调用它
  • 您应该避免直接绘制顶级容器,除此之外,它们不是双缓冲的,在绘制时会闪烁。相反,您应该创建一个自定义组件(从类似
    JPanel
    的东西扩展)并覆盖它的
    paintComponent
    方法
  • 你应该花时间通读一遍,然后
  • 此外,当你阅读时,你应该有一个通读

    修正案


    正如Andrew所指出的,您应该使用
    @Override
    注释来确保您认为要重写的方法实际上就是首先被重写的方法。这将阻止程序被编译,并节省大量时间,试图找出事情没有按预期方式运行。

    还将
    @Override
    符号添加到应该更改行为的方法,以检查签名是否正确。还将
    @Override
    符号添加到应该更改行为的方法,检查签名是否正确。1)向应更改行为的方法添加
    @Override
    符号,以检查签名是否正确。2) 不要设置顶级容器的大小。而是布局内容&调用
    pack()
    .1)将
    @Override
    符号添加到应该更改行为的方法,以检查签名是否正确。2) 不要设置顶级容器的大小。而是布局内容&调用
    pack()