框架 2 位于框架 1 内
我有2节课; Students 和 RegisterStudents,因此有 2 个不同的 main_panel(1 类)和 panel_1(2 类)。我想做的是,当按下学生界面上的按钮时,整个 panel_1 应该出现在 main_panel 中。我已经将两者设置为相同的大小。这可能吗?
到目前为止我得到的代码是:
JButton btnNewButton = new JButton("Register Student");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
Students main_panel = new Students();
RegisterStudent panel_1 = new RegisterStudent();
main_panel.add(panel_1);
}
});
btnNewButton.setBounds(0, 162, 167, 37);
panel.add(btnNewButton);
但这没有做任何事情?它正在编译,但 panel_1 实际上并未出现在 main_panel 中。有人有什么建议吗?
I have 2 classes; Students and RegisterStudents, and hence 2 different main_panel(Class 1) and panel_1 (Class 2). What I am trying to do is, when a button on the Students Interface is pressed, the whole panel_1 should appear within main_panel. I have set both to same size already. is that possible?
The code i got so far is:
JButton btnNewButton = new JButton("Register Student");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
Students main_panel = new Students();
RegisterStudent panel_1 = new RegisterStudent();
main_panel.add(panel_1);
}
});
btnNewButton.setBounds(0, 162, 167, 37);
panel.add(btnNewButton);
This isnt doing anything though? its compiling, but panel_1 is not actually appearing inside the main_panel. Has anyone got any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在初始化新的
main_panel
和新的panel_1
,并将panel_1
添加到main_panel
,但随后您没有使用新的main_panel
执行任何操作。另外,我强烈建议以其他方式命名你的变量 - 这些名称非常不直观。
You were initializing the new
main_panel
, and newpanel_1
, and addingpanel_1
tomain_panel
but then you weren't doing anything with the newmain_panel
.Also, I highly suggest naming your variables otherwise - these names are very non-intuitive.
对于这样的事情,我建议您使用 CardLayout
当你向容器添加一些东西时,你必须调用 revalidate() 和 repaint() 方法来实现在运行时对其所做的更改。就像您的情况一样,您添加了
main_panel.add(panel_1);
现在,在此之后您必须执行操作才能看到更改。一个小代码片段可以帮助您理解我的意思。
For such things I would suggest you to use CardLayout
When you add something to the container, you must call revalidate() and repaint() methods to realize the changes made to it at RunTime. Like in your case you adding
main_panel.add(panel_1);
now after this you must performso that changes can be seen. A small code snippet to help you understand what I mean.