[英]How can I center and widen out my JPanel in my JFrame?
我正在制作苹果日历应用程序的副本,在将月份名称和年份名称与屏幕中心对齐,同时将左右按钮与屏幕左侧和右侧对齐时遇到麻烦。 这是我的代码:
final JPanel months = new JPanel();
months.setLayout(new BoxLayout(months,BoxLayout.X_AXIS));
months.add(back, BorderLayout.WEST); //back is a JButton
JLabel monthName = new JLabel(this.monthNames[this.month]+" ", SwingConstants.CENTER);
JLabel year = new JLabel("" + this.year, SwingConstants.CENTER);
monthName.setFont(new Font("Helvetica", 0, 24));
year.setFont(new Font("Helvetica", 0, 24));
monthName.setHorizontalAlignment(JLabel.CENTER);
months.add(monthName, BorderLayout.CENTER);
months.add(year, BorderLayout.CENTER);
months.add(front, BorderLayout.EAST);
add(months);
但是它显示如下:
months.setLayout(new BoxLayout(months,BoxLayout.X_AXIS));
您正在使用BoxLayout
。 BoxLayout只是将组件水平添加到面板中。 WEST,CENTER,EAST约束仅由BorderLayout
使用,因此BoxLayout将忽略它们。
months.add(monthName, BorderLayout.CENTER);
months.add(year, BorderLayout.CENTER);
使用BorderLayout
,只能将单个组件添加到布局的区域。 因此,如果要向CENTER添加两个组件,则需要首先创建一个面板并将这些组件添加到面板。
因此,您的基本代码可能类似于:
JPanel centerPanel = new JPanel();
centerPanel.add(month);
centerPanel.add(year);
JPanel mainPanel = new JPanel( new BorderLayout() );
mainPanel.add(westButton, BorderLayout.WEST);
mainPanel.add(centerPanel, BorderLayout.CENTER);
mainPanel.add(eastButton, BorderLayout.EAST);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.