当前位置:  开发笔记 > 编程语言 > 正文

Java在同一组件上摆动不同的布局

如何解决《Java在同一组件上摆动不同的布局》经验,为你挑选了1个好方法。

我有点问题.我需要在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
    }
 } 

但月份小组一直在中心.说实话,我不太明白布局是如何工作的



1> camickr..:
add(month,BorderLayout.WEST); // HERE

a的默认布局管理器JPanel是a FlowLayout.

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

myMonth()
{
    setLayout( new BorderLayout() );

    String[] data = {"oneone"};
    ...

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

首先阅读布局管理器上的Swing教程.您可以找到每个布局管理器的工作代码,您可以下载和使用它们来学习基础知识.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有