日历GridLayout

Mon*_*Max 5 java layout user-interface swing calendar

我很难让我的标题在它自己的线上.标题会在一周中显示,而不是显示标题,然后是日历中的天数.这是否缺少一个小组?我尝试了多次更改,但我无法说清楚

package Exercise15_5;
import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Exercise15_5 extends JFrame {
    public Exercise15_5(){
        //Create panel with gridlayout
        JPanel calendar = new JPanel(new BorderLayout());
        calendar.setLayout(new GridLayout(5,7));
        //Add headers
        String[] headers = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
        for(int i = 0; i <7; i++){
            calendar.add(new JLabel("" + headers[i]));
        }
        //Add days to calendar
        for(int i = 1; i <31; i++){
            calendar.add(new JLabel("" + i));
        }

        JPanel monthHeader = new JPanel(new BorderLayout());
        monthHeader.add(new JTextField("\t\t\t04/2014"), BorderLayout.NORTH);

        monthHeader.add(calendar, BorderLayout.CENTER);



        add(monthHeader);
    }

    public static void main(String[] args) {
        Exercise15_5 frame = new Exercise15_5();
        frame.setTitle("Exercise 15_5");
        frame.setSize(600,300);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);


    }

}
Run Code Online (Sandbox Code Playgroud)

Pak*_*Don 4

尝试将面板布局设置为new GridLayout(0,7)

GridLayout API声明如下:

当行数和列数都已通过构造函数或 setRows 和 setColumns 方法设置为非零值时,指定的列数将被忽略。相反,列数是根据布局中指定的行数和组件总数确定的。因此,例如,如果指定了三行两列并向布局添加了九个组件,则它们将显示为三行三列。仅当行数设置为零时,指定列数才会影响布局。