欢迎来到天天文库
浏览记录
ID:34723763
大小:254.68 KB
页数:12页
时间:2019-03-10
《javaswing布局详解(附示例图)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、当选择使用JPanel和顶层容器的contentpane时,需要考虑布局管理。JPanel缺省是初始化一个FlowLayout,而contentpane缺省是初始化一个BorderLayout。下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。这些文件主要有三个方法组成:addComponentsTo
2、Pane()提供布局逻辑(依据不同的布局管理器和UI内容)。Java代码1publicstaticvoidaddComponentsToPane(Containerpane){。。。}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。4*/5privatestaticvoidcreateAndShowGUI(){6//Createandsetupthewindow.7JFrameframe=newJFrame("FlowLayoutDemo");8
3、frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9//Setupthecontentpane.10addComponentsToPane(frame.getContentPane());11//Displaythewindow.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。16publicstaticvoidmain(String[]args){1javax.sw
4、ing.SwingUtilities.invokeLater(newRunnable(){2publicvoidrun(){3createAndShowGUI();4}5});6}FlowLayoutFlowLayout类是最简单的布局管理器。它按照和页面上排列单词的类似方式来安排组件----从左到右,直至没有多余的空间,然后转到下一行。效果:内容面板代码:Java代码7publicstaticvoidaddComponentsToPane(Containerpane){8pane.setLayout(newFlow
5、Layout());9pane.add(newJButton("Button1"));10pane.add(newJButton("Button2"));11pane.add(newJButton("Button3"));12pane.add(newJButton("Long-NamedButton4"));13pane.add(newJButton("5"));14}BorderLayout一个BorderLayout对象将界面分成五大区域,分别用BorderLayout类的静态常量指定:-PAGE_START-P
6、AGE_END-LINE_START-LINE_END-CENTER效果:内容面板代码:Java代码1publicstaticvoidaddComponentsToPane(Containerpane){2JButtonbutton=newJButton("Button1(PAGE_START)");3pane.add(button,BorderLayout.PAGE_START);4button=newJButton("Button2(CENTER)");5button.setPreferredSize(newDi
7、mension(200,100));6pane.add(button,BorderLayout.CENTER);7button=newJButton("Button3(LINE_START)");8pane.add(button,BorderLayout.LINE_START);9button=newJButton("Long-NamedButton4(PAGE_END)");10pane.add(button,BorderLayout.PAGE_END);11button=newJButton("5(LINE_EN
8、D)");1pane.add(button,BorderLayout.LINE_END);2}BoxLayoutBoxLayout可以将组件由上至下或由左至右依次加入当前面板。效果:内容面板代码:Java代码3publicstaticvoidaddComponentsToPane(Containerpane){4JPanelxPanel=new
此文档下载收益归作者所有