Swing布局管理器介绍

当选择使用 JPanel 和顶层容器的 content pane 时,需要考虑布局管理。 JPanel 缺省是初始化一个 FlowLayout ,而 content pane 缺省是初始化一个 BorderLayout
下面将分别介绍几种最常用的布局管理器: FlowLayout BorderLayout BoxLayout CardLayout GridLayout GridBagLayout
代码演示
每一个布局管理器都会有一个代码演示, xxxLayoutDemo.java (见附件)。这些文件主要有三个方法组成:
addComponentsToPane() 提供布局逻辑(依据不同的布局管理器和 UI 内容)。
public static void addComponentsToPane(Container pane) { 。。。 }
createAndShowGUI() 实例化一个 JFrame ,通过它的 ContentPane 加载布局逻辑内容。
private static void createAndShowGUI() {
// Create and set up the window.
JFrame frame = new JFrame( "FlowLayoutDemo" );
frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );
// Set up the content pane.
addComponentsToPane(frame.getContentPane());
// Display the window.
frame.pack();
frame.setVisible( true );
}
main() 程序入口,单独起一个线程,实例化 UI
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater( new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
FlowLayout
FlowLayout 类是最简单的布局管理器。它按照和页面上排列单词的类似方式来安排组件 ---- 从左到右,直至没有多余的空间,然后转到下一行。
效果:
Swing布局管理器介绍
内容面板代码:
public static void addComponentsToPane(Container pane) {
pane.setLayout( new FlowLayout());
pane.add( new JButton( "Button 1" ));
pane.add( new JButton( "Button 2" ));
pane.add( new JButton( "Button 3" ));
pane.add( new JButton( "Long-Named Button 4" ));
pane.add( new JButton( "5" ));
}
BorderLayout
一个 BorderLayout 对象将界面分成五大区域,分别用 BorderLayout 类的静态常量指定:
-PAGE_START
-PAGE_END
-LINE_START
-LINE_END
-CENTER
效果:
Swing布局管理器介绍
内容面板代码:
public static void addComponentsToPane(Container pane) {
JButton button = new JButton( "Button 1 (PAGE_START)" );
pane.add(button, BorderLayout. PAGE_START );
button = new JButton( "Button 2 (CENTER)" );
button.setPreferredSize( new Dimension(200, 100));
pane.add(button, BorderLayout. CENTER );
button = new JButton( "Button 3 (LINE_START)" );
pane.add(button, BorderLayout. LINE_START );
button = new JButton( "Long-Named Button 4 (PAGE_END)" );
pane.add(button, BorderLayout. PAGE_END );
button = new JButton( "5 (LINE_END)" );
pane.add(button, BorderLayout. LINE_END );
}
BoxLayout
BoxLayout 可以将组件由上至下或由左至右依次加入当前面板。
效果:
Swing布局管理器介绍
内容面板代码:
public static void addComponentsToPane(Container pane) {
JPanel xPanel = new JPanel();
xPanel.setLayout( new BoxLayout(xPanel, BoxLayout.
<!--192.168.100.34-->
<script type="text/javascript">BAIDU_CLB_SLOT_ID = "117306";</script><script type="text/javascript" src="http://cbjs.baidu.com/js/o.js"></script>
<script type="text/javascript"> //new Ad(4, 'ad_cen'); </script>
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
<script type="text/javascript"> var fileName = '5508188'; var commentscount = 0; var islock = false </script><script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
<script type="text/javascript"> new Ad(5, 'ad_bot'); </script>
<script type="text/javascript"> $(function(){ var d_top=$('#d-top'); document.onscroll=function(){ var scrTop=(document.body.scrollTop||document.documentElement.scrollTop); if(scrTop>500){ d_top.show(); }else{ d_top.hide(); } } $('#d-top-a').click(function(){ scrollTo(0,0); this.blur(); return false; }); }); </script>
    个人资料
    • 访问:385次
    • 积分:12分
    • 排名:千里之外
    • 原创:0篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章搜索
      文章分类
      文章存档
      推荐文章
      <script type="text/javascript"> new Ad(12, 'ad_commend'); </script>
      <script type="text/javascript" src="http://static.blog.csdn.net/scripts/newblog.min.js?v=1.1"></script><script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=229774"></script><script type="text/javascript"> document.write('<script type="text/javascript" src="http://csdnimg.cn/pubfooter/js/publib_footer.js?' + Math.floor(new Date()/120000).toString(36) + '="></'+'script>'); </script><script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script><script type="text/javascript">document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</script><script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js?v=1"></script><script type="text/javascript" src="http://ad.csdn.net/scripts/ad-blog.js"></script><script type="text/javascript" src="http://zz.csdn.net/js/count.js"></script>

      你可能感兴趣的:(swing)