Java 摆动布局问题
Java swing layout problems
我在应用程序布局方面遇到困难。我是 java 的新手。我开发了一个我之前在 VB 开发的应用程序。在尝试学习 java 时,我开发了具有绝对布局(从 youtube 教程中学习)和选项卡式窗格的相同应用程序。我不喜欢我开发的东西,所以我重新开始。这次使用布局管理器和卡片布局作为主要布局。我正在努力按照我想要的方式得到东西。我花了很多天的试验和错误来按照我想要的方式制作我的面板。我有一个主 class 和 4 张不同的卡片。我尝试使用 eclipse 和 window builder 来尝试设计我的面板,但那是一个史诗般的失败。我已经重新开始设计我的布局,而不是在 eclipse 中进行设计,并且基本上将边框布局作为我所有卡片的基础。现在,我在使用一个面板时遇到了问题。第一个面板是我对绝对布局的最初尝试。第二张图片是我最近尝试使用边框布局,在南面有一个按钮(后退),在中心有一些文本字段,在北面有我的主要显示。 NORTH 显示器不够宽。这是我的 NORTH 面板的代码:
setLayout(new BorderLayout(0, 0));
JPanel panelNorth = new JPanel();
add(panelNorth, BorderLayout.NORTH);
JScrollPane scrollPane = new JScrollPane();
panelNorth.add(scrollPane);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);
JPanel panelCenter = new JPanel();
add(panelCenter, BorderLayout.CENTER);
在我完全发疯之前,如何在不绝对的情况下增加 NORTH 面板的宽度?还是我完全错了?
绝对布局示例:
布局管理器示例:
正如我的评论所述,我通过反复试验发现了这一点。我删除了 panelNorth 并将我的 scrollPane 添加到 BorderLayout.NORTH:
JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.NORTH);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);
我在应用程序布局方面遇到困难。我是 java 的新手。我开发了一个我之前在 VB 开发的应用程序。在尝试学习 java 时,我开发了具有绝对布局(从 youtube 教程中学习)和选项卡式窗格的相同应用程序。我不喜欢我开发的东西,所以我重新开始。这次使用布局管理器和卡片布局作为主要布局。我正在努力按照我想要的方式得到东西。我花了很多天的试验和错误来按照我想要的方式制作我的面板。我有一个主 class 和 4 张不同的卡片。我尝试使用 eclipse 和 window builder 来尝试设计我的面板,但那是一个史诗般的失败。我已经重新开始设计我的布局,而不是在 eclipse 中进行设计,并且基本上将边框布局作为我所有卡片的基础。现在,我在使用一个面板时遇到了问题。第一个面板是我对绝对布局的最初尝试。第二张图片是我最近尝试使用边框布局,在南面有一个按钮(后退),在中心有一些文本字段,在北面有我的主要显示。 NORTH 显示器不够宽。这是我的 NORTH 面板的代码:
setLayout(new BorderLayout(0, 0));
JPanel panelNorth = new JPanel();
add(panelNorth, BorderLayout.NORTH);
JScrollPane scrollPane = new JScrollPane();
panelNorth.add(scrollPane);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);
JPanel panelCenter = new JPanel();
add(panelCenter, BorderLayout.CENTER);
在我完全发疯之前,如何在不绝对的情况下增加 NORTH 面板的宽度?还是我完全错了?
绝对布局示例:
布局管理器示例:
正如我的评论所述,我通过反复试验发现了这一点。我删除了 panelNorth 并将我的 scrollPane 添加到 BorderLayout.NORTH:
JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.NORTH);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);