《(24)--第7章-Java程序设计界面设计(2).ppt》由会员分享,可在线阅读,更多相关《(24)--第7章-Java程序设计界面设计(2).ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章 界面设计(2)Java程序设计第第2 2节节 常用组件与布局管理常用组件与布局管理4任务陈述任务陈述123知识准备知识准备任务实施任务实施任务拓展任务拓展任务实训任务实训5Java程序设计 1 1 任务陈述任务陈述任务描述:任务描述:创建一个含有多个组件、多种布局的窗口。创建一个含有多个组件、多种布局的窗口。运行结果:运行结果:Java程序设计2 2 知识准备知识准备7.3 7.3 常用组件常用组件1文本框-JTextField构造方法:JTextField(intcolumns);2文本区-JTextArea构造方法:JTextArea(introws,intcolumns)3.标签
2、JLabel构造方法:JLabel(String text)JLabel(Iconimage);4.密码框JPasswordField构造方法:JPasswordField(intcolumns)常用方法:public String getText();public void setText(Stringt);public void setEchoChar(charc)使用该方法重新设置回显字符.public char getPassword()方法可以返回实际的密码Java程序设计2 2 知识准备知识准备7.3 7.3 常用组件常用组件5按钮JButton 构造方法:JButton();JB
3、utton(Stringtext);常用方法:setText(String text)setIcon(Icon defaultIcon)setRolloverIcon(Icon rolloverIcon)setPressedIcon(Icon pressedIcon)ImageIcon 图片类 构造方法:new ImageIcon(timg.jpg);文件的当前路径为项目根目录一般将图片放到src路径下,方便打包操作ImageIcon image=new ImageIcon(this.getClass().getResource(icons/logo.gif);ImageIcon image=
4、new ImageIcon(this.getClass().getResource(“/icons/logo.gif);Java程序设计2 2 知识准备知识准备7.3 7.3 常用组件常用组件6.单选按钮-JRadioButton构造方法:JRadioButton(Stringtext);常用方法:setText(String text)setSelected(boolean b)isSelected()ButtonGroup类 add(AbstractButton b)联合使用可组成了一个单选按钮组7.选择框JCheckBox构造方法:JCheckBox();JCheckBox(String
5、text);Java程序设计2 2 知识准备知识准备7.3 7.3 常用组件常用组件8.8.下拉列表下拉列表JComboBoxJComboBox构造方法:JComboBoxJComboBox(Objectitems)常用方法:addItem(Object item)setSelectedItem()setSelectedIndex()setEditable(true)insertItemAt(Object item,int index)案例9-3Java程序设计2 2 知识准备知识准备7.4 7.4 布局管理布局管理 布局指的是当把组件添加到容器中时,放在容器中的位置上。1、容器设置自己布局的
6、方法:setLayout(setLayout(布局类对象布局类对象););2、常用布局类java.awt包中的FlowLayout、BorderLayout、CardLayout、GridLayout布局类;java.swing.border包中的BoxLayout布局类。Java程序设计2 2 知识准备知识准备7.4.1 FlowLayout7.4.1 FlowLayout布局布局组件自上而下自左而右的放置,是JPanel型容器的默认布局。1)创建布局对象:FlowLayout flow=new FlowLayout();2)容器con使用布局对象:con.setLayout(flow);3
7、)con可以使用Container类提供的add方法将组件顺序地添加到容器中;4)setAlignment(intalign)/重新设置布局的对齐方式。Java程序设计2 2 知识准备知识准备7.4.2 BorderLayout布局容器采用BorderLayout 布局只能放置五个组件,分别在东西南北中位置上,是Window型容器的默认布局。如将一个组件b添加到中心区域:con.add(b,BorderLayout.CENTER);或 con.add(BorderLayour.CENTER,b);Java程序设计7.4.3 GridLayout7.4.3 GridLayout布局布局 Grid
8、Layout布局策略是把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中。GridLayout布局编辑器的一般步骤如下:1)创建布局对象,指定划分网格的行数m和列数n GridLayout grid=new new GridLayout(10,8);2)使用GridLayout布局的容器调用方法add(Component c)将组件c加入容器。2 2 知识准备知识准备Java程序设计2 2 知识准备知识准备7.4.4 7.4.4 空布局方式空布局方式 nullnull可以把一个容器的布局设置为null布局(空布局),也是通常说的自定义布局。空布局容器可以准确地定位组件在容器的
9、位置和大小。setLayout(null);容器调用设置布局方式 setBounds(int a,int b,int width,int height)组件调用设置本身的大小和在容器中的坐标位置。Java程序设计3 3 任务实施任务实施解决步骤解决步骤(1)(1)定义一个底层容器类继承自定义一个底层容器类继承自JFrameJFrame,定义两个中间容器类继承自,定义两个中间容器类继承自JpanelJpanel,定义一个主类;,定义一个主类;(2)(2)底层容器添加五个组件,中部添加的组件是底层容器添加五个组件,中部添加的组件是JTabbedPaneJTabbedPane对象;对象;(3)(3)
10、两个中间容器类,一个设置为网格布局,用双层循环设置成黑白相两个中间容器类,一个设置为网格布局,用双层循环设置成黑白相间;另一个设置为间;另一个设置为nullnull布局在容器的中心添加一个按钮。布局在容器的中心添加一个按钮。Java程序设计3 3 任务实施任务实施任务代码任务代码public class PanelGridLayout extends JPanel public class PanelGridLayout extends JPanel PanelGridLayout()PanelGridLayout()GridLayout grid=new GridLayout grid=ne
11、w GridLayout(12,12GridLayout(12,12);/);/网格布局网格布局 setLayout(grid);setLayout(grid);Label label=new Label1212;Label label=new Label1212;for(int i=0;i12;i+)for(int i=0;i12;i+)for(int j=0;j12;j+)for(int j=0;j12;j+)labelij=new Label();labelij=new Label();if(i+j)%2=0)if(i+j)%2=0)labelij.setBackground(Color
12、.black);labelij.setBackground(Color.black);else else labelij.setBackground(Color.white);labelij.setBackground(Color.white);add(labelij);add(labelij);public class PanelNullLayout extends JPanel public class PanelNullLayout extends JPanel JButton button;JButton button;JTextField text;JTextField text;P
13、anelNullLayout()PanelNullLayout()setLayout(null);/setLayout(null);/空布局空布局 button=new JButton(button=new JButton(确定确定););text=new JTextField();text=new JTextField();add(text);add(text);add(button);add(button);text.setBounds(100,30,90,30);text.setBounds(100,30,90,30);button.setBounds(190,30,66,30);but
14、ton.setBounds(190,30,66,30);Java程序设计3 3 任务实施任务实施任务代码任务代码public class ShowLayout extends JFrame public class ShowLayout extends JFrame PanelGridLayout pannelGrid;/PanelGridLayout pannelGrid;/网格布局的面板网格布局的面板 PanelNullLayout panelNull;/PanelNullLayout panelNull;/空布局的面板空布局的面板 JTabbedPane p;/JTabbedPane p
15、;/选项卡窗格选项卡窗格 ShowLayout()ShowLayout()pannelGrid=new PanelGridLayout();pannelGrid=new PanelGridLayout();panelNull =new PanelNullLayout();panelNull =new PanelNullLayout();p=new JTabbedPane();p=new JTabbedPane();p.add(p.add(网格布局的面板网格布局的面板,pannelGrid);p.add(,pannelGrid);p.add(空布局的面板空布局的面板,panelNull);,pa
16、nelNull);add(p,BorderLayout.CENTER);add(p,BorderLayout.CENTER);add(new JButton(add(new JButton(窗体是窗体是BorderLayoutBorderLayout布局布局),BorderLayout.NORTH);),BorderLayout.NORTH);add(new JButton(add(new JButton(南南),BorderLayout.SOUTH);add(new JButton(),BorderLayout.SOUTH);add(new JButton(西西),BorderLayout.
17、WEST);),BorderLayout.WEST);add(new JButton(add(new JButton(东东),BorderLayout.EAST);setBounds(10,10,570,390);setVisible(true);),BorderLayout.EAST);setBounds(10,10,570,390);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);validate();va
18、lidate();Java程序设计CardLayout CardLayout 布局布局 :1)创建CardLayout对象 CardLayout card=new CardLayout();2)为容器设置布局 con.setLayout(card);3)容器调用add(String s,Component b)将组件b加入容器,并给出了显示该组件的代号s。4)布局对象card用CardLayout类提供的show()方法,显示容器con中组件代号为s的组件:card.show(con,s);使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,
19、就像一叠“扑克牌”每次只能显示最上面一张一样,这个被显示的组件将占据所有的容器空间,依次排序。4 任务拓展Java程序设计BoxLayoutBoxLayout布局布局用Box类的类(静态)方法 createHorizontalBox()createHorizontalBox()获得一个行型盒式容器;使用Box类的类(静态)方法 createVerticalBox()createVerticalBox()获得一个列型盒式容器。想控制盒式布局容器中组件之间的距离,需使用水平支撑组件或垂直支撑。4 任务拓展Java程序设计5 5 任务实训任务实训一、一、实训目的实训目的 1、掌握组件的创建与添加;、掌握组件的创建与添加;2、掌握界面的布局。、掌握界面的布局。二、实训内容二、实训内容 在在Eclipse中编写程序显示一个使用用户名和密码登陆窗中编写程序显示一个使用用户名和密码登陆窗口。口。