按钮在面板

时间:2018-03-07 12:45:42

标签: java swing

面板上的按钮应该位于最后一排椭圆下方,但它的作用是添加一列:

enter image description here

这是我的代码

    Panel p1 = new Panel();
    JButton shiftLeft = new JButton("Shift Left");
    JButton shiftRight = new JButton("Shift Right");

    p1.setLayout(new GridLayout(Rows, Columns));
    for (int i=0; i<Rows; i++) {
        for (int j = 0; j < Columns; j++) {
            arcs[i][j] = new ArcsPanel(i, j);
            p1.add(arcs[i][j]);
            arcs[i][j].addMouseListener(me);
        }
    }
    p1.add(shiftRight);
    add(p1, BorderLayout.CENTER);

    this.pack();
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setVisible(true);

1 个答案:

答案 0 :(得分:1)

  

面板上的按钮应该位于最后一排椭圆下方

GridLayout总是在行/列中添加组件。

如果您希望按钮与GridLayout分开,则需要将按钮直接添加到框架中:

//p1.add(shiftRight);
add(p1, BorderLayout.CENTER);
add(shiftRight, BorderLayout.PAGE_END);

或者,如果您不希望调整按钮大小,则需要先将其包装在另一个面板中:

JPanel buttonPanel = new JPanel();
buttonPanel.add( shiftRight );
add(buttonPanel, BorderLayout.PAGE_END);

关键是要实现所需的布局,您可以使用多个面板,每个面板具有不同的布局。您无需使用单个面板或布局管理器。