java - 将 Jlabel 添加到扩展类的面板中

标签 java swing inheritance user-interface awt

我有一个默认窗口及其构造函数,并且知道我希望所有窗口如何设置。然后我想用各自的界面自定义其余的窗口。

import javax.swing.*;
import java.awt.*;

public class Default_window extends JFrame {

    protected BorderLayout layout = new BorderLayout();

    public Default_window(){
        setTitle("My Program");
        setLayout(layout);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Dimension Window_size = new Dimension(500,500);

        JPanel mypanel= new JPanel();

        add(mypanel, BorderLayout.CENTER);

        getContentPane();
        setResizable(false);
        setSize(Window_size);
        setVisible(true);

    }

}

这是我尝试创建的自定义屏幕:

import javax.swing.*;


public class Login_screen extends Default_window{
    JLabel user_name = new JLabel("Username: ");

    public Login_screen(){
    // insert way to add Jlabels to the panel here. 

    }


}

但我不能只说 add(user_name)。它不知道该把它放在哪里。 任何帮助将不胜感激。我是一名刚毕业的大学毕业生,我周围没有人对编程一无所知。 #forever_alone

最佳答案

Default_window正在扩展JFrame ,这是一个顶级容器。您必须将组件添加到 JPanel您将其命名为 mypanel .

尝试创建一个扩展 JPanel 的第三个类,例如Default_panel并在那里添加您的组件。让Login_screen延长Default_panel ,然后您就可以调用 add(...) .

继承与创建相当复杂的面板可能非常困难,特别是如果您想要很大的灵 active (将插件组件放置在默认组件之间的任何位置)。因此,我建议创建一些 GUI 构建器类,它负责收集所有组件约束,并且当每个组件都已“注册”时,它可以创建 JPanelLayoutManager你的选择。

如果你可以避免使用可插拔的 GUI,那就避免它。

关于java - 将 Jlabel 添加到扩展类的面板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840602/

相关文章:

java - java中的复合类型

java - 在 webdriver 2.21 和 mozilla11 中处理警报

java - 如何通过单击按钮更改 javafx 中文本框的语言?

java - 如何像在 Facebook 中那样在 JTextArea 中创建 Jlabel?

c++ - 为什么虚函数需要通过指针而不是(对象的)值传递?

java - 控制 Java 中的类可见性

java - 有没有办法在模式对话框中创建 JList?

java - 面对构造函数静态 block 和代码块的执行顺序问题

java - Hibernate继承

java - Java 插件 JRE 1.8.0.45 (DNS?) 的小程序超时