第15章爱好选择——图形用户界面汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类如果有setXxx格式方法,通常也有对应的getXxx方 法。
如果setXxx方法的参数类型是boolean型,则对应的 方法一般是返回boolean类型的isXxx方法。
使用较多的容器类是JFrame、JApplet、JDialog和 JPanel。
容器根类Container常用方法(适用所有容器):
能力目标: 了解图形用户界面包java.awt和javax.swing及其组件。 学会使用窗框、对话框、面板等容器,以及标签、按钮、文本框、单选按 钮和复选框等组件。 能编写关于兴趣爱好选择的图形界面程序。
15.1 任务预览 15.2 图形用户界面及其组件 15.3 容器 15.4 常用组件 15.5 本章小结 15.6 实训15:兴趣爱好选择程序
组件根类Component,容器根类Container。
◦ 注:Container类继承Component类,即容器也是组件。
容器一般具有布局管理器(对应LayoutManager接 口),组件位置通过布局(Layout)进行管理。
import java.awt.*;
import java.awt.event.*;
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
(11)void setResizable(boolean resizable) (12)boolean isResizable()
JFrame也从Window继承方法,常用的有:
(13)void dispose():撤销、关闭窗框,释放资源。 (14)void pack():按组件大小和布局重新调整窗口大小。
本章实训程序运行结果:
JDK1.0版图形界面包只有java.awt(简称AWT)。
AWT表示“抽象窗口工具包”(Abstract Window Toolkit)
由于要依靠本地计算机平台实现组件功能,因此AWT包 的组件是“重量级”的。
组件分:
◦ 容器:容纳组件(含容器)的组件,Frame和Panel等。 ◦ 基本组件:Label、Button、TextField(文本框)等,
(1)void setBounds(int x, int y, int width, int height) (2)void setLocation(int x, int y) (3)int getX() (4)int getY() (5)void setSize(int width, int height) (6)int getWidth() (7)int getHeight() (8)void setBackground(Color bg) (9)Color getBackground() (10)void setForeground(Color fg) (11)Color getForeground() (12)void setFont(Font font) (13)Font getFont() (14)void setVisible(boolean b) (15)boolean isVisible()
initialize();
this.setVisible(true);
}
public void initialize(){
pan.add(labelName);
pan.add(fieldName);
Fra Baidu bibliotek
pan.add(buttonPress);
pan.add(areaShow);
this.add(pan);
fieldName.getText()+",您好!"); //使用消息框
} });
}
}
public class Example2 {
//主类
public static void main(String[] args) {
new MyFrame2();
}
}
组件根类Component的方法能被所有组件继承和调用。 常用方法:
(1)Component add(Component comp)
(2)void add(Component comp, Object constraints):按给定的约束(条件)将定组件添加到 容器。
(3)void remove(Component comp)
(4)void paint(Graphics g)
从Frame 继承而来的常用方法:
(9)void setTitle(String title) (10)void setExtendedState(int state):设置窗框的状态。
参数是Frame类定义的整型静态常量字段: ◦ NORMAL:正常状态。 ◦ ICONIFIED:将窗口图标化(最小化)。 ◦ MAXIMIZED_HORIZ:水平方向最大化。 ◦ MAXIMIZED_VERT:垂直方向最大化。 ◦ MAXIMIZED_BOTH:水平和垂直方向均最大化。 例如,窗框扩大到整个屏幕语句:
JDK1.2版增加了javax.swing(简称Swing)包。
Swing包组件用Java语言编写,是“轻量级”的。
Swing包中部分类以J开头命名。如:JLabel、 JButton、JTextField、JPanel、JFrame和JApplet等。
【例15-2】使用Swing包的组件编写候程序。
由于JFrame继承Frame,故上面4个构造方法的 owner可以是JFrame窗框。
模式参数modal为true表示构造有模式的对话框。
JDK1.5版调用setModal(boolean modal) 方法设置对话框 是否有模式,调用isModal()方法判断是否有模式。
JDK1.6版Dialog类新增两个方法(旧的过时了): (1)void setModalityType(Dialog.ModalityType type) (2)Dialog.ModalityType getModalityType() 对话框模式类型取自下面4个枚举常量:
(5)void setLayout(LayoutManager mgr)
(6)LayoutManager getLayout()
JFrame容器独立存在,并且具有边框、标题和菜单, 属于底层容器。
常用方法:
(1)JFrame():构造无标题的窗框。 (2)JFrame(String title) (3)Container getContentPane():获取窗框的内容窗格。 注意:JDK1.6版组件可直接添加到JFrame容器上。 (4)void repaint(long time, int x, int y, int width, int height) (5)void setDefaultCloseOperation(int operation)
参数是整型的静态常量字段,选下面4项之一: ◦ HIDE_ON_CLOSE ◦ DO_NOTHING_ON_CLOSE ◦ DISPOSE_ON_CLOSE ◦ EXIT_ON_CLOSE:退出、结束整个应用程序 (6)void setIconImage(Image image) (7)void setJMenuBar(JMenuBar menubar) (8)void setLayout(LayoutManager manager)
TextArea areaShow = new TextArea(1, 30);
Panel pan = new Panel();
public MyFrame1(){
this.setTitle("自定义的Frame子窗框");
this.setBounds(100, 200, 250, 140); //窗框位置和大小
JButton buttonPress = new JButton("按下");
JPanel pan = new JPanel();
public MyFrame2(){
this.setTitle("自定义的JFrame子窗框");
this.setBounds(100, 200, 250, 140);
(16)void setEnabled(boolean b) (17)boolean isEnabled() (18)void setCursor(Cursor cursor):设置组件的光标图像。 (19)Cursor getCursor() (20)boolean requestFocusInWindow() (21)void requestFocus() (22)void add(PopupMenu popup):向组件添加弹出菜单。 (23)void addKeyListener(KeyListener listener) (24)void addMouseListener(MouseListener listener) (25)void addMouseMotionListener(MouseMotionListener listener) (26)void addMouseWheelListener(MouseWheelListener listener)
import javax.swing.*;
import java.awt.event.*;
class MyFrame2 extends JFrame{
//定义JFrame子类
JLabel labelName = new JLabel("请输入您的姓名:");
JTextField fieldName = new JTextField(10);
pan.add(buttonPress);
this.add(pan);
buttonPress.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initialize(); this.setVisible(true); }
public void initialize(){
pan.add(labelName);
pan.add(fieldName);
◦ MODELESS:无模式 ◦ APPLICATION_MODAL:应用程序模式(默认) ◦ DOCUMENT_MODAL
public void windowClosing(WindowEvent e){
System.exit(0); } });
}
}
public class Example1 {
//主类
public static void main(String[] args) { new MyFrame1(); }
}
class MyFrame1 extends Frame{
//定义Frame子类
Label labelName = new Label("请输入您的姓名:");
TextField fieldName = new TextField(10);
Button buttonPress = new Button("按下");
buttonPress.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
areaShow.setText(fieldName.getText() + ",您好!");
} });
this.addWindowListener(new WindowAdapter(){
不单独使用,依附别的容器(例如JFrame)。 对话框分为模式(modal)和非模式两种。 JDialog常用构造方法有:
(1)JDialog(Frame owner):构造指定所有者的非模式对话框。 (2)JDialog(Frame owner, boolean modal) (3)JDialog(Frame owner, String title) (4)JDialog(Frame owner, String title, boolean modal)
如果setXxx方法的参数类型是boolean型,则对应的 方法一般是返回boolean类型的isXxx方法。
使用较多的容器类是JFrame、JApplet、JDialog和 JPanel。
容器根类Container常用方法(适用所有容器):
能力目标: 了解图形用户界面包java.awt和javax.swing及其组件。 学会使用窗框、对话框、面板等容器,以及标签、按钮、文本框、单选按 钮和复选框等组件。 能编写关于兴趣爱好选择的图形界面程序。
15.1 任务预览 15.2 图形用户界面及其组件 15.3 容器 15.4 常用组件 15.5 本章小结 15.6 实训15:兴趣爱好选择程序
组件根类Component,容器根类Container。
◦ 注:Container类继承Component类,即容器也是组件。
容器一般具有布局管理器(对应LayoutManager接 口),组件位置通过布局(Layout)进行管理。
import java.awt.*;
import java.awt.event.*;
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
(11)void setResizable(boolean resizable) (12)boolean isResizable()
JFrame也从Window继承方法,常用的有:
(13)void dispose():撤销、关闭窗框,释放资源。 (14)void pack():按组件大小和布局重新调整窗口大小。
本章实训程序运行结果:
JDK1.0版图形界面包只有java.awt(简称AWT)。
AWT表示“抽象窗口工具包”(Abstract Window Toolkit)
由于要依靠本地计算机平台实现组件功能,因此AWT包 的组件是“重量级”的。
组件分:
◦ 容器:容纳组件(含容器)的组件,Frame和Panel等。 ◦ 基本组件:Label、Button、TextField(文本框)等,
(1)void setBounds(int x, int y, int width, int height) (2)void setLocation(int x, int y) (3)int getX() (4)int getY() (5)void setSize(int width, int height) (6)int getWidth() (7)int getHeight() (8)void setBackground(Color bg) (9)Color getBackground() (10)void setForeground(Color fg) (11)Color getForeground() (12)void setFont(Font font) (13)Font getFont() (14)void setVisible(boolean b) (15)boolean isVisible()
initialize();
this.setVisible(true);
}
public void initialize(){
pan.add(labelName);
pan.add(fieldName);
Fra Baidu bibliotek
pan.add(buttonPress);
pan.add(areaShow);
this.add(pan);
fieldName.getText()+",您好!"); //使用消息框
} });
}
}
public class Example2 {
//主类
public static void main(String[] args) {
new MyFrame2();
}
}
组件根类Component的方法能被所有组件继承和调用。 常用方法:
(1)Component add(Component comp)
(2)void add(Component comp, Object constraints):按给定的约束(条件)将定组件添加到 容器。
(3)void remove(Component comp)
(4)void paint(Graphics g)
从Frame 继承而来的常用方法:
(9)void setTitle(String title) (10)void setExtendedState(int state):设置窗框的状态。
参数是Frame类定义的整型静态常量字段: ◦ NORMAL:正常状态。 ◦ ICONIFIED:将窗口图标化(最小化)。 ◦ MAXIMIZED_HORIZ:水平方向最大化。 ◦ MAXIMIZED_VERT:垂直方向最大化。 ◦ MAXIMIZED_BOTH:水平和垂直方向均最大化。 例如,窗框扩大到整个屏幕语句:
JDK1.2版增加了javax.swing(简称Swing)包。
Swing包组件用Java语言编写,是“轻量级”的。
Swing包中部分类以J开头命名。如:JLabel、 JButton、JTextField、JPanel、JFrame和JApplet等。
【例15-2】使用Swing包的组件编写候程序。
由于JFrame继承Frame,故上面4个构造方法的 owner可以是JFrame窗框。
模式参数modal为true表示构造有模式的对话框。
JDK1.5版调用setModal(boolean modal) 方法设置对话框 是否有模式,调用isModal()方法判断是否有模式。
JDK1.6版Dialog类新增两个方法(旧的过时了): (1)void setModalityType(Dialog.ModalityType type) (2)Dialog.ModalityType getModalityType() 对话框模式类型取自下面4个枚举常量:
(5)void setLayout(LayoutManager mgr)
(6)LayoutManager getLayout()
JFrame容器独立存在,并且具有边框、标题和菜单, 属于底层容器。
常用方法:
(1)JFrame():构造无标题的窗框。 (2)JFrame(String title) (3)Container getContentPane():获取窗框的内容窗格。 注意:JDK1.6版组件可直接添加到JFrame容器上。 (4)void repaint(long time, int x, int y, int width, int height) (5)void setDefaultCloseOperation(int operation)
参数是整型的静态常量字段,选下面4项之一: ◦ HIDE_ON_CLOSE ◦ DO_NOTHING_ON_CLOSE ◦ DISPOSE_ON_CLOSE ◦ EXIT_ON_CLOSE:退出、结束整个应用程序 (6)void setIconImage(Image image) (7)void setJMenuBar(JMenuBar menubar) (8)void setLayout(LayoutManager manager)
TextArea areaShow = new TextArea(1, 30);
Panel pan = new Panel();
public MyFrame1(){
this.setTitle("自定义的Frame子窗框");
this.setBounds(100, 200, 250, 140); //窗框位置和大小
JButton buttonPress = new JButton("按下");
JPanel pan = new JPanel();
public MyFrame2(){
this.setTitle("自定义的JFrame子窗框");
this.setBounds(100, 200, 250, 140);
(16)void setEnabled(boolean b) (17)boolean isEnabled() (18)void setCursor(Cursor cursor):设置组件的光标图像。 (19)Cursor getCursor() (20)boolean requestFocusInWindow() (21)void requestFocus() (22)void add(PopupMenu popup):向组件添加弹出菜单。 (23)void addKeyListener(KeyListener listener) (24)void addMouseListener(MouseListener listener) (25)void addMouseMotionListener(MouseMotionListener listener) (26)void addMouseWheelListener(MouseWheelListener listener)
import javax.swing.*;
import java.awt.event.*;
class MyFrame2 extends JFrame{
//定义JFrame子类
JLabel labelName = new JLabel("请输入您的姓名:");
JTextField fieldName = new JTextField(10);
pan.add(buttonPress);
this.add(pan);
buttonPress.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initialize(); this.setVisible(true); }
public void initialize(){
pan.add(labelName);
pan.add(fieldName);
◦ MODELESS:无模式 ◦ APPLICATION_MODAL:应用程序模式(默认) ◦ DOCUMENT_MODAL
public void windowClosing(WindowEvent e){
System.exit(0); } });
}
}
public class Example1 {
//主类
public static void main(String[] args) { new MyFrame1(); }
}
class MyFrame1 extends Frame{
//定义Frame子类
Label labelName = new Label("请输入您的姓名:");
TextField fieldName = new TextField(10);
Button buttonPress = new Button("按下");
buttonPress.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
areaShow.setText(fieldName.getText() + ",您好!");
} });
this.addWindowListener(new WindowAdapter(){
不单独使用,依附别的容器(例如JFrame)。 对话框分为模式(modal)和非模式两种。 JDialog常用构造方法有:
(1)JDialog(Frame owner):构造指定所有者的非模式对话框。 (2)JDialog(Frame owner, boolean modal) (3)JDialog(Frame owner, String title) (4)JDialog(Frame owner, String title, boolean modal)