同一组件上的Java swing不同布局

同一组件上的Java swing不同布局,java,swing,Java,Swing,我有点问题。我需要在JTabbedPane组件的不同选项卡上使用两种不同类型的布局。代码如下: MyPanel.java import java.awt.*; import javax.swing.*; import java.util.*; public class myPanel extends JPanel{ myPanel(){ super(new GridLayout(1, 1)); JTabbedPane tabbedPane =

我有点问题。我需要在JTabbedPane组件的不同选项卡上使用两种不同类型的布局。代码如下:

MyPanel.java

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

 public class myPanel extends JPanel{
    myPanel(){
        super(new GridLayout(1, 1));

        JTabbedPane tabbedPane = new JTabbedPane();
        myYear year = new myYear();
        myDate mydate = new myDate();
        String s_year = Integer.toString(myDate.year);
        tabbedPane.addTab(s_year,year);
        myMonth month = new myMonth();
        tabbedPane.addTab(mydate.getMonth(),month);


        add(tabbedPane);

        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    }


 }
“年份”窗格上的GridLayout是必需的,因为它每月显示4x4个正方形。但是,当涉及到月份窗格时,我需要使用JList组件,我希望将其放在西部边界。我试着这样做:

 package Lista8;

 import java.awt.*;
 import javax.swing.*;

 class myMonth extends JPanel{

    myMonth(){
        String[] data = {"oneone"};
        JList month = new JList(data);
        month.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        month.setLayoutOrientation(JList.VERTICAL_WRAP);
        month.setVisibleRowCount(5);
        month.setPreferredSize(new Dimension(100,200));
        add(month,BorderLayout.WEST); // HERE
    }
 } 
但这个月的小组一直在中间结巴。老实说,我不太明白布局是如何工作的

add(month,BorderLayout.WEST); // HERE
JPanel的默认布局管理器是FlowLayout

如果要使用BorderLayout,则需要将面板的布局设置为BorderLayout

老实说,我不太明白布局是如何工作的

add(month,BorderLayout.WEST); // HERE
首先阅读上的Swing教程。您将找到每个布局管理器的工作代码,您可以下载并使用这些代码学习基础知识

JPanel的默认布局管理器是FlowLayout

如果要使用BorderLayout,则需要将面板的布局设置为BorderLayout

老实说,我不太明白布局是如何工作的

add(month,BorderLayout.WEST); // HERE
首先阅读上的Swing教程。您将找到每个布局管理器的工作代码,您可以下载并使用这些代码学习基础知识