-4

Java:当我调整我的 GUI 面板的大小时,其中包含动态元素.. 这些元素被打乱

我打开了这个 Jpanel。当我调整这个窗口的大小时..一些动态元素在第二个 jpanel 中被打乱了..这是为什么?

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

  • 1:我有这个名为 jpBarDetails 的 GUI jPAnel
  • 2:在此 jPAnel 内生成动态组件的公共 void
  • 3:我从2个下拉菜单开始,用于选择付款方法。选择此方法时,加载了Panel PanelPayDetails。

所以..当我调整窗口大小时..当我将窗口大小调整为 5 像素左右时,动态面板 panelPayDetails 中的所有项目都会被打乱

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

1 回答 1

3

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

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

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

你不应该相信在你的系统上看起来不错的人会在另一个操作系统中出现。

一些有用的链接:

于 2013-06-21T16:24:05.293 回答