【问题标题】:Java applets which layout suitable for this interface?Java applet 有哪些布局适合这种界面?
【发布时间】:2013-02-12 03:54:18
【问题描述】:

哪种布局最适合这个界面?我已尝试FlowLayout,但无法将 SUBMIT 按钮放置在正确的位置。

【问题讨论】:

    标签: java swing applet awt layout-manager


    【解决方案1】:

    我推荐miglayout,它非常易于使用,而且它总能处理我要扔的东西。

    在这种情况下,我将创建两个面板。第一个面板有一个“wrap 3”约束作为 miglayout 构造函数的参数,第二个只有一个按钮,添加了一个“alignx center, aligny center”约束。

    这是一个例子:

    public class TestApplet extends JApplet{
    
    @Override
    public void init() {
        super.init();
        setSize(400, 300);
        setLayout(new MigLayout("fill, insets 0"));
    
        JPanel leftPanel = new JPanel(new MigLayout("wrap 3"));
        for (int i = 0; i < 9; i++) {
            leftPanel.add(new JButton(""+i));
        }
        add(leftPanel);
    
        JPanel rightPanel = new JPanel(new MigLayout());
        rightPanel.add(new JButton("submit"), "alignx center, aligny center");
        add(rightPanel);
    
    
    }   
    }
    

    您只需根据需要对按钮上的数字进行排序。

    【讨论】:

      【解决方案2】:
      • 第一个包含两列的网格布局。
      • 在第一列添加 panal1,在第二列添加 BorderLayout.CENTER 提交。
      • 在该面板 1 中,您可以使用 3x3 网格布局。

      【讨论】:

      • BorderLayout.CENTER 将占据整个第二个面板。
      【解决方案3】:

      我在 JFrame 上进行了尝试,您可以在您的小程序中执行相同的操作。

      创建一行两列的网格。
      在第二个面板上创建一个带有页面轴的框布局,然后确保您有垂直胶水,按钮位于中心。 创建一个 3x3 的网格并添加按钮。

      代码示例:

          JFrame frame = new JFrame();
      
          frame.setLayout(new GridLayout(1, 2));
          JPanel leftPanel = new JPanel(new GridLayout(3, 3));
          for(int i=0;i<9;i++)
      
          {
              JButton button = new JButton();
              button.setText(i+"");
              leftPanel.add(button);
          }
          frame.add(leftPanel);
          JPanel rightPanel = new JPanel();
           BoxLayout layout = new BoxLayout(rightPanel, BoxLayout.PAGE_AXIS);
           rightPanel.setLayout(layout);
      
           JButton button = new JButton("Submit");
               button.setAlignmentX(
           Component.CENTER_ALIGNMENT);
           rightPanel.add(Box.createVerticalGlue()); //Ensure this order
           rightPanel.add(button);
           rightPanel.add(Box.createVerticalGlue());
      
      
          frame.add(rightPanel);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setVisible(true);
      

      【讨论】:

      • 更改 JPanel leftPanel = new JPanel(new GridLayout(3, 3)); to JPanel leftPanel = new JPanel(new GridLayout(3, 3, 10,10)); //添加空间。
      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多