[英]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.