JAVA Swing(二)

菜单组件

Swing菜单由菜单条(JMenuBar)、菜单(JMenu)和菜单项(JMenuItem)构成。菜单条是所有菜单和菜单项的根(容器)。

JMenuBar

JMenuBar是JComponent类的子类,负责创建菜单条。

[java] view plain copy
JMenuBar menuBar=new JMenuBar();
将菜单条放置到JFrame窗口中:

public void setJMenuBar(JMenuBar menubar);
需要注意的是,只能向窗口添加一个菜单条。

JMenu

JMenu是JComponent类的间接子类,负责创建菜单。

构造方法:

pulbic JMenu():建立一个没有标题的菜单。
pulbic JMenu(String title):建立一个指定标题菜单,标题由参数title确定
常用方法:

add(MenuItem item):向菜单增加由参数item指定的菜单选项对象。
add(String s):向菜单增加指定的选项。
getItem(int n):得到指定索引处的菜单选项。
getItemCount():得到菜单选项数目。
创建一个名为“Edit”的菜单,并添加到菜单条中:

JMenu editMenu=new JMenu(“Edit”);
menuBar.add(editMenu);
JMenuItem

JMenuItem是JComponent类的间接子类,负责创建菜单项。

常用构造方法:

public JMenuItem(String s):构造有标题的菜单项。
public JMenuItem(String text, Icon icon):构造有标题和图标的菜单项。
创建图标对象 Icon icon=new ImageIcon(“图标文件名”);
常用方法:

public void setEnabled(boolean b):设置当前菜单项是否可被选择。
public String getLabel():得到菜单选项的名字。
public void setAccelerator(KeyStroke keystroke):为菜单项设置快捷键。
KeyStroke类静态方法:
[java] view plain copy
public static KeyStroke getKeyStroke(int keyCode, int modifiers)

keyCode一般取值范围:KeyEvent.VK_A~KeyEvent.VK_Z
modifiers一般取值:InputEvent.ALT_MASK,InputEvent.CTRL_MASK,InputEvent.SHIFT_MASK
创建一个菜单项,并将其放在“Edit”菜单里:

JMenuItem pasteItem=new JMenuItem(“Paste”);
editMenu.add(pasteItem);
嵌入JMenu子菜单

菜单项本身也可以是一个菜单,我们称这样的菜单项为子菜单。如:

JMenu editMenu = new JMenu(“Edit”);
JMenu optionsMenu = new JMenu(“Options”);
editMenu.add(optionsMenu);
布局管理器

作用:

指定各个视图组件在窗口中的分布位置,实现动态布局。
有助于创建复合式的复杂界面,一个复合式界面由一些简单的基本界面组成。
布局管理器的类型:

流布局管理器:FlowLayout
边界布局管理器:BoderLayout
卡片式布局管理器:CardLayout
网格布局管理器:GridLayout
盒式布局管理器:BoxLayout
我们使用方法 setLayout(LayoutManager) 来设计自己的布局。

BorderLayout

边界布局管理器,这是Window型容器的默认布局,比如Jframe类、JDialog类。

每个被BorderLayout管理的容器均被划分为五个区域:东(EAST),南(SOUTH),西(WEST),北(NORTH),中(CENTER)。

容器的每个区域,只能加入一个组件,如果试图加入多个组件,其中只有一个组件是可见的。

对于东南西北这四个边界区域,如果,其中的某个区域没有用,它的大小将变为0,CENTER区域将扩展并占用该区域。

在BorderLayout布局管理器的管理下,组建必须通过add()方法加入到容器的五个命名区域之一,否则它们是不可见的。方法:add(组件, 区域)

FlowLayout

流式布局管理器,将组件按照加入的顺序逐个地放在容器中的一行上,一行放满后再另起一个新行。

每一行中的组件按布局指定的方式对齐方,默认情况下是居中对齐。

FlowLayout布局管理器不强行设定组件的大小,而是允许组件拥有自己希望的大小。

每个组件都有一个getPreferredSize()方法,容器布局管理器会调用此方法取得每个组件希望的大小。

FlowLayout布局管理器是JPanle容器的默认布局管理器。

GridLayout

网格式的布局管理器,它将容器空间划分成若干行乘若干列的网格,每个格放一个组件。

各组件按照从上到下,从左至右的顺序排列。

使用GridLayout布局设计的一般步骤:

使用GridLayout的构造方法创建布局对象,指定划分网格的行数和列数。
使用GridLayout布局容器调用方发add将组件加入容器。
GridLayout布局中每个网格都是相同大小并且强制组件与网格相同大小。

CardLayout

卡式布局管理器,可以容纳多个组件,但是同一时刻容器只能从这些组件中选出一个来显示,被显示的组件占据容器的整个空间。

选项卡窗格(JTabbedPane)的默认布局是CardLayout。

BoxLayout

盒式布局管理器。Box类创建的容器称作一个盒式容器,盒式容器的的默认布局是盒式布局,而且不允许更改盒式容器的布局。

行型盒式布局,特点:

容器中组件的上沿在同一水平线上。
Box类的类方法createHorizontalBox()可以获得一个具有行型盒式布局的盒式容器。
行型盒式容器中组件间的间距:Box类调用静态方法createHorizontalStrut(int width)可以得到一个不可见的水平Struct类型对象,称做水平支撑。
列型盒式布局,特点:

容器中组件的左沿在同一垂直线上。
Box类的类方法createVerticalBox()可以获得一个具有列型盒式布局的盒式容器。
列型盒式容器中组件间的间距:Box类调用静态方法createVertialStrut(int height)可以得到一个不可见的垂直Struct类型对象,称做垂直支撑。
中间容器

用来添加组件的轻容器,称为中间容器。包括:

JPanel
JScrollPane
JSplitPane
JLayeredPane
JPanel

JPanel类用来创建一个面板对象,可以向这个面板添加组件(直接使用add方法)。

使用时需要把这个面板添加到底层容器或其他中间容器中。

JPanel面板的默认布局是FlowLayout布局。

JScrollPane

滚动窗格,把一个组件放到一个滚动窗格中,然后通过滚动条来观察这个组件。

例如,JTextArea不自带滚动条,如果希望使用带滚动条的多行文本框,可把JTextArea放到一个滚动窗格中。

JSplitPane

拆分窗格,将容器拆分成两部分,拆分窗格有两种类型:

水平拆分:用一条拆分线把容器分成左右两部分,拆分线可以水平移动。
垂直拆分:用一条拆分线分成上下两部分,拆分线可以垂直移动。
JLayeredPane

分层窗格,如果添加到容器中的组件经常需要处理重叠问题,就可以将组件添加到JLayeredPane容器中。

JLayeredPane将容器分成5个层,容器使用add(Jcomponent component, int layer)方法添加组件component,并指定component所在的层layer。

layer取值:

DEFAULT_LAYER:最底层
PALETTE_LAYER
MODAL_LAYER
POPUP_LAYER
DRAG_LAYER:最上面的层
JTextField

单行文本框,用来建立文本框的组件,用户可以在文本框中输入单行的文本。

常用构造方法:

JTextField(int x):创建文本框对象,可以在文本框中输入若干个字符,文本框的可见字符个数由参数x指定。

JTextField(String s):创建文本框对象,则文本框的初始字符串为s,可以在文本框中输入若干个字符。

常用方法:

public void setText(String text):设置文本框中的文本为参数text指定的文本。
public String getText():获取文本框中的文本。
public void setEditable(boolean b):指定文本框的可编辑性(默认为true-可编辑的)。
public void setHorizontalAlignment(int alignment):设文本在文本框中的对齐方式,其中alignment的有效值确定对齐方式,如:LEFT、CENTER、RIGHT。
JPasswordField

密码框,用于接收密码信息,输入的文本不会以明文形式显示出来。

常用方法:

setEchoChar(char echoChar):设置回显字符(默认的回显字符是‘*’)。
char[] getPassword():获取密码框中的密码。
JTextArea

多行文本框,用户可以在文本区输入多行的文本。

常用构造方法:

JTextArea(int rows, int columns):构造一个可见行和可见列分别是rows、columns的文本区。
常用方法:

setLineWrap(boolean b):决定输入的文本能否在文本区的右边界自动换行。
setWrapStyleWord(boolean b):决定是以单词为界(b取true时)或以字符为界(b取false时)进行换行。
getText():获取文本区的文本。
setText(String text):设置文本内容。
append(String text):尾部加文本。
insert(String text,int index):在文本区的指定位置处插入文本。
public void copy():拷贝选定的区域。
public void cut():剪切选定的区域。
public void paste():在指定的区域粘贴。
JButton

按钮组件,常用构造方法:

public JButton(String text):创建名字是text的按钮。
public JButton(Icon icon):创建带有图标icon的按钮。
public JButton(String text, Icon icon):创建名字是text且带有图标icon的按钮。
常用方法:

public String getText():获取当前按钮上的名字。
public void setText(String text):重新设置当前按钮的名字,名字由参数text指定。
public Icon getIcon():获取当前按钮上的图标。
public void setIcon(Icon icon):重新设置当前按钮上的图标。
public void setHorizontalTextPosition(int textPosition):设置按钮名字相对按钮上图标的水平位置。
textPosition取值:
SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
public void setVerticalTextPosition(int textPosition):设置按钮上名字相对按钮上图标的垂直位置。
public void addActionListener(ActionListener):按钮对象调用该方法可以向按钮增加动作监视器。
public void removeActionListener(ActionListener):按钮对象调用该方法可以移去按钮上的动作监视器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值