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