有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    声明类后,需要创建类的实例并将其添加到框架中:

        HelloComponent helloComponent = new HelloComponent( );
        frame.add(helloComponent);
        frame.setSize(300,300);
        frame.setVisible(true);
    

    你可能应该移除 框架添加(新HelloComponent())

    来自paintComponent方法

    只有将类的实例添加到可视框架的组件层次结构中时,才会调用paintComponent。因此,在调用paintComponent之前,必须将其添加到帧中。因此,您可以将其从该方法中删除