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