JFrame 和 JPanel 大小调整
JFrame and JPanel sizing
我有一个 JFrame 和一些 JPanel,它们根据用户的去向(登录、主页等)显示,有没有办法将所有 JPanel 设置为相同的大小而无需手动指定?
public mainApp() {
main = new JFrame("Application");
main.setSize(640, 480);
main.setVisible(true);
}
private JPanel loginScreen() {
login = new JPanel(null);
login.setSize(640, 480);
login.setVisible(true);
}
例如我有 5 个不同的 JPanel,并且必须在每个中指定大小,有没有办法设置与 JFrame 相同的默认大小?
您在这里有不同的有效选项。知道您想从一个视图更改为另一个视图并保持相同的大小,听起来最好的选择是使用 CardLayout 允许您在不同的视图之间切换而不必担心重新绘制和重新验证内容(本教程来自当我学习使用这种布局时,Oracle 帮了我很多忙:Oracle - How to use CardLayout.
但是,与 Swing/AWT 一样,这不是唯一有效的选项。例如,您还可以使用默认应用于 JFrame 中的 ContentPane 的 BorderLayout,并将所需的 JPanel 添加到该 BorderLayout 的中心。但是,在这种情况下,您必须管理 view-changing 进程。
我有一个 JFrame 和一些 JPanel,它们根据用户的去向(登录、主页等)显示,有没有办法将所有 JPanel 设置为相同的大小而无需手动指定?
public mainApp() {
main = new JFrame("Application");
main.setSize(640, 480);
main.setVisible(true);
}
private JPanel loginScreen() {
login = new JPanel(null);
login.setSize(640, 480);
login.setVisible(true);
}
例如我有 5 个不同的 JPanel,并且必须在每个中指定大小,有没有办法设置与 JFrame 相同的默认大小?
您在这里有不同的有效选项。知道您想从一个视图更改为另一个视图并保持相同的大小,听起来最好的选择是使用 CardLayout 允许您在不同的视图之间切换而不必担心重新绘制和重新验证内容(本教程来自当我学习使用这种布局时,Oracle 帮了我很多忙:Oracle - How to use CardLayout.
但是,与 Swing/AWT 一样,这不是唯一有效的选项。例如,您还可以使用默认应用于 JFrame 中的 ContentPane 的 BorderLayout,并将所需的 JPanel 添加到该 BorderLayout 的中心。但是,在这种情况下,您必须管理 view-changing 进程。