簡體   English   中英

將Jlabel從擴展類添加到面板

[英]adding Jlabel to a a panel from an extended class

我有一個默認窗口及其構造函數,並且知道我希望所有窗口設置為什么樣。 然后,我想用它們各自的界面自定義其余的窗口。

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)。 它不知道放在哪里。 任何幫助都將不勝感激。 我是大學畢業的畢業生,周圍的人對編程一無所知。 #永遠的孤獨

Default_window擴展了JFrame ,它是一個頂級容器。 您必須將您的組件添加到名為mypanel JPanel中。

嘗試創建一個擴展JPanel的第3類,例如Default_panel並在其中添加組件。 Login_screen擴展Default_panel ,然后您將能夠調用add(...)

將繼承與創建一個相當復雜的面板結合起來可能非常困難,特別是如果您想要更大的靈活性(將插件組件放在默認組件之間的任何位置)時,尤其如此。 因此,我建議創建一些GUI構建器類,該類負責收集所有組件約束,並且在“注冊”每個組件后,可以使用您選擇的LayoutManager創建JPanel

如果可以避免使用可插拔的GUI,請避免使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM