第九章 用户界面组件
在设计Java图形界面时,界面上的元素都是组件。
常用的轻型组件有JButton、JLabel、JTextField、JTextArea、JComboBox、JList、JCheckBox、JRadioButton、JMenuBar、JMenu、JMenuItem、JScrollBar、JScrollPane等。
- 组建的属性
Font、background、foreground、height、width、locale、preferredSize、minimumSize、maximumSize、ToolTipText、DoubleBuffered、Border
- 组件的常用方法
颜色的设置和获取:
Public void setBackground(Color color)
Public Color getBackground(Color color)
Public void setForeground(Color color)
Public Color getForeground(Color color)
字体的设置和获取
Public void setFont(Font font )
Public Font getFont(Font font)
获取计算机上所有字体的名称代码:
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); //获取计算机的图像对象
String fontName[]=ge.getAvailableFOntFamilyNames(); //把一系列字体名称保存到数组中
- 组件的大小和位置
Public void setSize(int width ,int height)
Pubic void setLocation(int x,int y)
Public Dimension getSize() //返回一个Dimension对象的引用
Public Point getLocation(int x,int y)
Public void setBounds(int x,int y,int width,int height)
Public Rectangle getBounds() //返回一个Rectangle对象的引用
- 矩形对象
Rectangle(int x,int y,int width,int height)
Public boolean intersects(Rectangle rect)
Public boolean contains(int x,int y) //判断点是否在当前矩形内
Public Boolean contains(int x,int y,int width,int height ) //判断当前矩形是否包含参数所指定的矩形
Public boolean contains(Rectangle rect)
Public Rectangle intersection(Rectangle rect)
Public Rectangle union (Rectangle rect) 当前矩形和矩形rect的最小矩形得到同时包含
5.组件的激活
Public void setEnabled(Boolean bol)
Public Boolean isEnabled() 用于判断组件是否可激活
6.组件的可见性
Public void setVisible(Boolean bol)
Public Boolean isVisible()
7.组件的光标设置
Public Cursor(Cursor cur) 创建组建的光标对象
Public void setCursor(Cursor cur) 为组件设置光标对象,即当鼠标指向组件时光标显示所用到的对象
8.组件上绘制图形
paint(Graphics g) //在组件视区中绘制各种图形
update(Graphics g) //清楚组件上以前所画的内容,然后在调用paint(Graphics g)方法重新在组件上绘制图形
repaint() //调用repaint()方法时,程序自动调用update(Graphic g)方法清除组件上以前所画的内容,然后调用paint(Graohics g)方法重新在组建视图上绘制图形
9.按钮
Javax.swing包中的JButton类是专门用来建立按钮的
① 属性
Text、Icon、Mnemonic、horizontalAliginment、verticalAliginment、horizontalTextPosition、verticalTextPosition
② 构造方法
Public JButton(String text)
Public JButton(Icon icon)
Public JButton(String text,Icon icon)
③ Public void setText(String str)
Public String getText()
Public void addActionListener(ActionListener)
Public void removeActionListener(ActionListener)
Public setActionCommand(String command)
10.标签 使用JLabel类创建标签
11.文本框 使用JTextField类创建一个文本框
12.文本区 使用JTextArea类
13.组合框 JConboBox
14.列表框 JList
15.复选框 JCheckBox
16.单选按钮 JRadioButton
17.菜单条、菜单、菜单项
JAVA提供了五个实现菜单的类 JMenubar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem
① 创建一个菜单条并将其天道到框架的顶端
JFrame frame=new JFrame(); //建立窗口frame
frame.setSize(300,200); //设置窗口的大小
frame.setVisible(true); //使窗口可见
JMenuBar jmb=new JMenuBar(); //创建菜单条jmb
frame.setJMenuBar(jmb); //将菜单条添加到框架的顶端
② 建菜单
JMenu fileMenu=new JMenu(“file”); //创建菜单fileMenu,菜单标题是file
JMenu helpMenu=new JMenu(“Help”); //创建菜单helpMenu,菜单标题是Help
jmb.add(fileMenu); //把菜单fileMenu加入到菜单条jmb中
jmb.add(helpMenu); //把菜单helpMenu加入菜单条jmb中
③ 建菜单项
fileMenu.add(new JMenuItem(“new”);
fileMenu.add(new JMenuItem(“open”);
fileMenu.addSeparator(); //菜单项是一个分割线
fileMenu.add(new JMenuItem(“Print”));
fileMenu.addSeparator();
fileMenu.add(new JMenuItem(“exit”));
创建子菜单
JMenu softwareHelpSubMenu=new JMenu(“Sortware”); //将它作为子菜单项
JMenu hardwareHelpSubMenu=new JMenu(“Hardware”);
helpMenu.add(softwareHelpSubMenu); //将菜单softwareHelpSubMenu加入菜单helpMenu中
helpMenu.add(hardwareHelpSubMenu); //将菜单hardwareHelpSubMenu加入菜单helpMenu中
softwareHelpSubMenu.add(new JMenuItem(“Unix”));
softwareHelpSubMenu.add(new JMenuItem(“NT”));
softwareHelpSubMenu.add(new JMenuItem(“Win98”));
创建复选框菜单项
helpMenu.add(new JCheckBoxMenuItem(“Check it”));
…………
18.对话框
Dialog和JFrame都是window的子类,二者不同之处在于,dialog承建的对话框不能添加菜单,而且对话框必须依赖与某个窗口或组件,当他所依赖的窗口或组件消失时,对话框也将消失,而当它所依赖的窗口或组件可见时,对话框又会自动恢复到可见
① 构造方法:
Dialog(Frame frame,String Title)
Dialog(Frame frame,String Title,boolean bol) bol决定对话框是否为有模式或无模式
一个有模式的对框框处于激活状态时(光标在对话框上),程序只能相应对话框及对话框内部组件产生的事件。只有当对话框消失或不见后,才能激活对话框以外其他窗口或组件。无模式对话框处于激活状态时用户仍那能激活对话框外的其他组件
② 文件对话框
FileDialog是Dialog类的子类。文件对话框是一个打开文件和保存文件的有模式对话框,他必须依赖与一个Frame对象
构造方法:FileDialog(Frame frame,String Title,int mode) //mode的取值为FileDialog.LOAD或FileDialog.SAVE
③ 消息对话框
它是有模式对话框。
在javax.swing包中有一个JOptionPane类,使用其中的类方法showMessageDialog()可以创建一个消息对话框
④ 认对话框
有模式对话框
在javax.swing包中有一个JOptionPane类,使用其中的类方法showConfirmDialog()可以创建一个消息对话框
⑤ 颜色对话框
在javax.swing包中有一个JColorChooser类,使用其中的类方法showDialog()可以创建颜色对话框
19.鼠标事件
Java把鼠标事件分为成两组,一组事件由MouseListener接口中的方法处理,另一组事件由MouseMotionListener接口中的方法处理
① MouseEvent类
当鼠标作用于事件源时,事件源就产生一个鼠标事件。鼠标事件是用MouseEvent类创建的对象。MouseEvent对象封装了鼠标信息
获取鼠标信息的方法:
public int getX() 获取鼠标在事件源的坐标系中的x坐标
public int getY() 获取鼠标在事件源的坐标系中的y坐标
getModifiers() 获取鼠标的左键或右键
public int getClickCount() 获取鼠标被点击的次数
getSource() 获取发生鼠标事件的事件源
public boolean isAltDown() 返回事件发生时是否按下了Alt键
public boolean isControlDown() 返回事件发生时是否按下了Ctrl键
public boolean isMetaDown() 如果按下鼠标右键,则返回true
public boolean isShiftDown() 返回事件发生时是否按下了Shift键
② MouseListener接口处理的事件
为事件源注册监听器的方法:事件源.addMouseListener(监听器)
MouseListener接口:
mousePressed (MouseEvent)
mouseReleased (MouseEvent)
mouseEntered (MouseEvent)
mouseExited (MouseEvent)
mouseClicked (MouseEvent)
③ MouseMotionListener接口处理的事件
为事件源注册监听器的方法:事件源.addMouseMotionListener(监听器)
MouseMotionListener接口
mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
20.键盘事件
当一个组件处于激活状态时,敲击键盘上的任意一个键,这个组件就产生了键盘事件
① KeyEvent类
KeyEvent对象封装了键盘信息
Public int getKeyCode()
Public int getKeyChar()
② 为事件源注册监听器的方法: 事件源.addKeyListener(监听器);
③ KeyListener接口
public void keyPressed(KeyEvent e)
public void keyReleased(KeyEvent e)
public void keyTyped(KeyEvent e)

浙公网安备 33010602011771号