我有点问题。我需要在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
}
}
但是月份小组一直在中心。说实话,我不太明白布局是如何工作的
答案 0 :(得分:6)
add(month,BorderLayout.WEST); // HERE
JPanel
的默认布局管理器是FlowLayout
。
如果您想使用BorderLayout
,则需要将面板的布局设置为BorderLayout
。
myMonth()
{
setLayout( new BorderLayout() );
String[] data = {"oneone"};
...
说实话,我不太明白布局是如何工作的
首先阅读Layout Managers上的Swing教程。您可以找到每个布局管理器的工作代码,您可以下载和使用它来学习基础知识。