我有一个默认窗口及其构造函数,并且知道我希望我的所有窗口设置如何。然后我想用各自的界面自定义其余的窗口。
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
答案 0 :(得分:1)
Default_window
正在扩展JFrame
,这是一个顶级容器。您必须将自己的组件添加到名为JPanel
的{{1}}。
尝试创建扩展mypanel
的第3个类,例如JPanel
并在那里添加您的组件。让Default_panel
延长Login_screen
,然后您就可以致电Default_panel
。
继承与创建相当复杂的面板相结合可能非常困难,特别是如果您需要很大的灵活性(将插件组件放在默认组件之间的任何位置)。因此,我建议创建一些GUI构建器类,它负责收集所有组件约束,并且当每个组件都已“注册”时,它可以使用您选择的add(...)
创建JPanel
。
如果可以避免使用可插拔的GUI,请避免使用它。