swing Java代码错误不确定我应该做什么?
我买了一本名为《学习Java》的新书,我正在努力解决以下问题
它问我下面代码的类型,但现在它说我们将用自己的图形类替换JLabel。HelloComponent是他希望我创建的新图形类,它应该显示Hello Java
import javax.swing.*;
public class Helloworld {
public static void main(String[]args){
JFrame frame = new JFrame ("Hello, Java");
JLabel label = new JLabel("Hello world", JLabel.CENTER);
frame.add(label);
frame.setSize(300,300);
frame.setVisible(true);
}
}
我试过了
import javax.swing.*;
import java.awt.*;
public class Helloworld {
public static void main(String[]args){
JFrame frame = new JFrame ();
class HelloComponent extends JComponent{
public void paintComponent (Graphics g){
g.drawString("Hello, Java", 123, 95);
frame.add(new HelloComponent());
}
}
}
}
# 1 楼答案
声明类后,需要创建类的实例并将其添加到框架中:
你可能应该移除 框架添加(新HelloComponent())
来自paintComponent方法
只有将类的实例添加到可视框架的组件层次结构中时,才会调用paintComponent。因此,在调用paintComponent之前,必须将其添加到帧中。因此,您可以将其从该方法中删除