当我使用动态元素调整我的GUI面板的大小时......这些元素被扰乱

时间:2013-06-21 16:19:53

标签: java swing layout jpanel

Java:当我使用动态元素调整GUI面板的大小时......这些元素被加扰

我打开了这个Jpanel。当我调整此窗口的大小.. 一些动态元素在第二个jpanel中进行了争夺。为什么会这样?

这是一段非常长的代码文本,我不知道我要发布什么...但我可以告诉你:

  • 1:我有这个名为jpBarDetails的GUI jPAnel
  • 2:在此jPAnel中生成动态组件的公共空白
  • 3:我从2下拉菜单开始选择付款方式.. 选择此方法后,将加载面板panelPayDetails。

所以...当我调整窗口大小时...动态面板panelPayDetails中的所有项目都会在我调整窗口大小只有5个像素时被扰乱

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);
                }
            });
   }

1 个答案:

答案 0 :(得分:3)

您需要查看Java的布局管理。

您可以将组件置于绝对位置,也可以在布局中布局,以便在调整窗口大小时进行补偿。

此外,您应该考虑您的GUI也会受到操作系统设置的影响(例如,类外观与Windows 7)以及实际的操作系统+窗口管理器。

您不应该依赖在您的系统上看起来正常的人在另一个操作系统中看起来像那样。

一些有用的链接: