java - 为什么导入 JFrame 需要继承,而 FlowLayout、JLabel 等不需要继承?

标签 java swing jframe layout-manager flowlayout

我刚刚开始学习 GUI,并且正在观看他写这篇文章的“thenewboston”教程。但我不明白为什么 JFrame 是唯一继承的导入?我不确定这是否只是其中一种情况,否则 java 会给出错误。

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class tuna extends JFrame {

    private JLabel item1;

    public tuna(){
        super("The title bar");
        setLayout(new FlowLayout());            
        item1 = new JLabel("This is a sentence.");
        item1.setToolTipText("This is gonna show up on hover");
        add(item1);
    }
}

最佳答案

JFrame 不需要继承。事实上你不应该使用继承。

查看 How to Make Frames 上 Swing 教程中的 FrameDemo.java 代码为了更好的设计。

此外,Java 类名应以大写字符开头。我会坚持使用 Swing 教程,而不是您当前正在查看的教程。

关于java - 为什么导入 JFrame 需要继承,而 FlowLayout、JLabel 等不需要继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31302281/

相关文章:

java - SELECT 中的子查询可以返回多行吗?

java - 如何使用 JProgressBar 作为密码强度计,它应该在我键入时改变颜色和值

java - 同时使用TableCellEditor和TableCellRenderer?

java - 如何将 JTextField[][] 作为参数传递给动态加载的 java 类方法?

java - 如何禁用 JFrame 中的关闭按钮?

java - 如何在我的应用程序中传递当前登录的用户信息

Java 按特定步长舍入

Java:如何使用 Selenium 从亚马逊抓取图像?

java - 可以使用麦克风录制一次声音,但无法第二次启动麦克风

java - 重写mouseClicked(MouseEvent e)不会改变JFrame的组件JLable?