Java 当我用动态元素调整GUI面板的大小时。。这些元素是混乱的
Java:当我用动态元素调整GUI面板的大小时。。这些元素是混乱的 我打开了这个Jpanel。当我调整此窗口的大小时。。 一些动态元素在第二个jpanel中被紧急删除。。为什么会这样 这是一个很长的代码文本,我不知道我要发布什么。。但我可以告诉你:Java 当我用动态元素调整GUI面板的大小时。。这些元素是混乱的,java,swing,layout,jpanel,Java,Swing,Layout,Jpanel,Java:当我用动态元素调整GUI面板的大小时。。这些元素是混乱的 我打开了这个Jpanel。当我调整此窗口的大小时。。 一些动态元素在第二个jpanel中被紧急删除。。为什么会这样 这是一个很长的代码文本,我不知道我要发布什么。。但我可以告诉你: 1:我有一个名为jpBarDetails的GUI jPAnel 2:在该jPAnel中为生成动态组件的公共void 3:我从2个下拉菜单开始选择付款方式。。 选择此方法后,将加载面板PayDetails 所以。。当我调整窗口大小时。。当我仅将窗口
- 1:我有一个名为jpBarDetails的GUI jPAnel
- 2:在该jPAnel中为生成动态组件的公共void
- 3:我从2个下拉菜单开始选择付款方式。。 选择此方法后,将加载面板PayDetails
public void initAfrekenenDisplay() {
jpBarDetails.removeAll();
rekeningContant.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panelPayDetails.setBounds(245, 10, 360, 275);
panelPayDetails.setSize(360, 275);
panelPayDetails.setBackground(payDetailColor);
panelPayDetails.setBorder(BorderFactory.createEtchedBorder());
jpBarDetails.add(panelPayDetails);
JLabel lblLidNummerResult = new JLabel("Lidnummer:");
lblLidNummerResult.setBounds(10, 175, 200, 20);
lblLidNummerResult.setFont(Applicatie.FONT_12_BOLD);
panelPayDetails.add(lblLidNummerResult);
final JTextField jtfLidNummerResult = new JTextField();
jtfLidNummerResult.setBounds(180, 175, 130, 20);
jtfLidNummerResult.enable(false);
jtfLidNummerResult.setBackground(verLightGray);
panelPayDetails.add(jtfLidNummerResult);
JLabel lblLidNaamResult = new JLabel("Naam:");
lblLidNaamResult.setBounds(10, 197, 200, 20);
lblLidNaamResult.setFont(Applicatie.FONT_12_BOLD);
panelPayDetails.add(lblLidNaamResult);
final JTextField jtfLidNaamResult = new JTextField();
jtfLidNaamResult.setBounds(180, 197, 130, 20);
jtfLidNaamResult.enable(false);
jtfLidNaamResult.setBackground(verLightGray);
panelPayDetails.add(jtfLidNaamResult);
JLabel lblLidGeboortedatumResult = new JLabel("Geboortedatum:");
lblLidGeboortedatumResult.setBounds(10, 220, 200, 20);
lblLidGeboortedatumResult.setFont(Applicatie.FONT_12_BOLD);
panelPayDetails.add(lblLidGeboortedatumResult);
}
});
}
您需要了解Java的布局管理 您可以将组件绝对定位,也可以在布局中设置布局,以便在调整窗口大小时进行补偿
另外,您应该考虑到GUI也会受到操作系统设置的影响(例如Cype VIEW vs Windows 7),以及实际的OS+窗口管理器。 你不应该相信在你的系统上看起来正常的人会在另一个操作系统中出现
一些有用的链接:SSCCE
来说明你的问题。如果你放一些代码就好了。不要使用空布局!!!不要使用setBounds()方法定位/调整组件的大小,这是布局管理器的工作。如果使用适当的布局管理器,组件的重新对齐/大小调整将自动进行。此外,您发布的代码不是SSCCE
,因此我们无法给出任何具体建议。将代码更改为使用布局管理器,然后在仍然存在问题时发布SSCCE。永远不要手动调整大小/定位:这是合适的布局管理器的专有任务