【问题标题】:JPanel within JPanelJPanel 内的 JPanel
【发布时间】:2013-04-25 03:01:48
【问题描述】:

是否可以在 Java 中的一种方法中在面板中拥有面板?

如果我在一个名为CreatePanel 的方法中创建了一个JPanel,我可以在它下面添加另一个吗?我试图在一种方法中添加两个或三个面板,但到目前为止还没有成功。

如果这不可能,您将如何创建一个JPanel,比如LeftPanel,然后在LeftPanel 中添加另一个JPanel

任何有关资料来源和清晰解释的帮助都会非常棒,因为我是 Java 的初学者,有时你说的话对你和所有 CS 运动员来说可能是显而易见的,但对我来说却不是。

【问题讨论】:

    标签: java swing jpanel awt layout-manager


    【解决方案1】:

    您的问题是可能的,但我认为您将通过阅读有关布局管理器的教程来了解更多信息,而不是给出答案。请阅读布局管理器和布局组件:)

    http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html

    【讨论】:

      【解决方案2】:

      基本前提将遵循将任何其他组件添加到面板的相同工作流程...

      你可以这样做......

      public JPanel createMasterPane() {
      
          JPanel master = new JPanel(new BorderLayout());
      
          JPanel leftPane = new JPanel();
          leftPane.add(new JLabel("Left"));
      
          master.add(leftPane, BorderLayout.WEST);
      
          JPanel rightPanel = new JPanel();
          rightPanel.add(new JLabel("Right"));
          master.add(rightPanel, BorderLayout.EAST);
      
          return master;
      
      }
      

      更好的解决方案 (恕我直言) 是将各个责任领域分开并做更多类似的事情...

      public JPanel createLeftPane() {
          JPanel leftPane = new JPanel();
          leftPane.add(new JLabel("Left"));
          return leftPane;
      }
      
      public JPanel createRightPane() {
          JPanel rightPanel = new JPanel();
          rightPanel.add(new JLabel("Right"));
          return rightPanel;
      }
      
      public JPanel createMasterPane() {
          JPanel master = new JPanel(new BorderLayout());
      
          master.add(createLeftPane(), BorderLayout.WEST);
          master.add(createRightPane(), BorderLayout.EAST);
      
          return master;
      }
      

      您可能想花一些时间查看How to create a UI with Swing 以了解更多详情...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        相关资源
        最近更新 更多