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
方法@Override
注释来确保您认为要重写的方法实际上就是首先被重写的方法。这将阻止程序被编译,并节省大量的时间,试图找出为什么事情不能按预期的方式运行
JFrame
中没有这样的方法graphics
,因此没有调用它JPanel
的东西扩展)并覆盖它的paintComponent
方法正如Andrew所指出的,您应该使用
@Override
注释来确保您认为要重写的方法实际上就是首先被重写的方法。这将阻止程序被编译,并节省大量时间,试图找出事情没有按预期方式运行。还将@Override
符号添加到应该更改行为的方法,以检查签名是否正确。还将@Override
符号添加到应该更改行为的方法,检查签名是否正确。1)向应更改行为的方法添加@Override
符号,以检查签名是否正确。2) 不要设置顶级容器的大小。而是布局内容&调用pack()
.1)将@Override
符号添加到应该更改行为的方法,以检查签名是否正确。2) 不要设置顶级容器的大小。而是布局内容&调用pack()
。