java详解第七章:图形界面开发(二)

Java图形界面主要分成两层,顶级容器和面板容器。顶级容器有且只有一个,没有顶级容器就没有界面。JFrame是最常见的也是最通用的顶级容器。

1.JFrame

构造方法介绍:

① JFrame() 构造一个初始时不可见的新窗体。

② JFrame(String title) 创建一个新的、初始不可见的、具有指定标题的 Frame。

 

常用方法

① setTitle(String name) 定义此窗体的标题。

② setSize(int width,int height)或setSize(Dimension dim) 定义此窗体的尺寸。

③ setLocationRelativeTo(Component c) 设置窗口相对于指定组件的位置,如果组件当前未显示,或者 c 为 null,则此窗口将置于屏幕的中央。

④ setDefaultCloseOperation(int operation) 设置按下关闭键后的事件(共四种)

1.this.setDefaultCloseOperation(0);// DO_NOTHING_ON_CLOSE,不执行任何操作。

2.this.setDefaultCloseOperation(1);//HIDE_ON_CLOSE,只隐藏界面,setVisible(false)。

3.this.setDefaultCloseOperation(2);//DISPOSE_ON_CLOSE,隐藏并释放窗体,dispose(),当最后一个窗口被释放后,则程序也随之运行结束。

4.this.setDefaultCloseOperation(3);//EXIT_ON_CLOSE,直接关闭应用程序,System.exit(0)。一个main函数对应一整个程序。

⑤ setLayout(LayoutManager arg0) 设置界面布局格式。

⑥ getsize() 返回一个尺寸(格式为Dimension)。

⑦ getWidth() 返回界面的宽(格式为int)。

⑧ getHeight() 返回界面的高(格式为int)。

⑨ add(Component arg0) 添加组件。

⑩ setJMenuBar(JMenuBar menuBar) 设置菜单栏。

 

2.JPanel

JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合。

 

构造方法介绍:

① JPanel()建立一个JPanel,默认为FlowLayout。

② JPanel(LayoutManager layout):建立一个JPanel,可自定义版面管理器。

 

常用方法

① setPreferredSize(Dimension dim) 定义此组件的尺寸。

② setLayout(LayoutManager arg0) 设置界面布局格式。

③ add(Component arg0) 添加组件。

④ setBorder(LineBorder arg0) 设置边框,默认无边框。

** LineBorder

构造函数

① LineBorder(Color color) 创建具有指定颜色、厚度为 1(thickness = 1)的线边框。

② LineBorder(Color color, int thickness) 创建具有指定颜色和厚度的线边框。

③ LineBorder(Color color, int thickness, boolean roundedCorners) 创建具有指定颜色、厚度和拐角形状的线条边框。true表示拐角圆润,false表示拐角为直角。

3.JLabel

    JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。 还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都垂直对齐。

 

构造方法介绍:

① JLabel() 创建无图像并且其标题为空字符串的 JLabel。

② JLabel(Icon image) 创建具有指定图像的 JLabel 实例。

③ JLabel(Icon image, int horizontalAlignment) 创建具有指定图像和水平对齐方式的 JLabel 实例。

④ JLabel(String text) 创建具有指定文本的 JLabel 实例。

⑤ JLabel(String text, Icon icon, int horizontalAlignment) 创建具有指定文本、图像和水平对齐方式的 JLabel 实例。

⑥ JLabel(String text, int horizontalAlignment) 创建具有指定文本和水平对齐方式的 JLabel 实例。

 

常用方法

① setIcon(Icon icon) 定义此组件将要显示的图标。

② setText(String text) 定义此组件将要显示的单行文本。

③ setPreferredSize(Dimension dim) 定义此组件的尺寸。

 

4.JTextArea/JTextField/ JPasswordField

文本输入框包括两种,单行文本输入框 (JTextField) 和多行文本输入框 (JTextArea)。密码输入框则只有一种 (JPasswordField)。JPasswordField 是 JTextField 的子类,它们的主要区别是 JPasswordField 不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 '*'。

 

构造方法介绍(以JTextArea为例):

① JTestArea()建立一个JTextArea对象,使用预设的模式、空字符串、0行、0列。

② JTextArea(String text) 建立一个JTextArea对象,使用预设的模式、字符串为text、行列由字符串决定。

③ JTextArea(int rows, int columns) 建立一个JTextArea对象,使用预设的模式、空字符串、rows行、columns行。

④ JTextArea(String text, int rows, int columns) 建立一个JTextArea对象,使用预设的模式、字符串为text、rows行、columns行。

 

常用方法:

① setText(String text) 定义此组件内的文本。

② append(String str) 将字符串str加入尾端。

③ insert(String str, int pos) 将字符串str插入pos位置处。

④ replaceRange(String str, int start, int end) 字符串str替换从start到end位置的字符串。

⑤ setFont(Font f) 设置字体为f。

⑥ setForeground(Color fg) 设置字体颜色。

**Font类:

构造方法介绍:

Font(String familyName,int style,int size)

  1. familyName是字体类型,例如宋体、仿宋、Times New Roman等;
  2. style是字体风格,例如斜体字、加粗等;

官方提供4种固定值,如下:

Font.PLAIN(普通)

Font.BOLD(加粗)

Font.ITALIC(斜体)

Font.BOLD + Font.ITALIC(粗斜体)

  1. size是字体大小,其默认单位为pt(磅),数字越大、字就越大(例如12pt字比10pt的字要大)。

**Color

构造方法介绍:

Color(int r,int g,int b) 定义一个RGB值分别为r,g和b的颜色。

  1. r,g和b范围都是0~255。
  2. 如果不想自己定义,可以直接调用Color类中的静态变量,如白色:Color.WHITE,红色:Color.RED。

⑦ setLineWrap(boolean arg0) 设置自动换行,ture表示自动换行,false表示不自动换行。

⑧ setBorder(LineBorder arg0) 设置边框,默认无边框。

 

5. JScrollPane

JScrollPane类可提供轻量级组件的 scrollable 视图(滚动视图)。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。JScrollPane本身与JPanel一样可以添加组件,一样添加的组件不能超过其自身尺寸,但JScrollPane可以让其内部组件产生滚动条。

 

构造方法介绍:

① JScrollPane() 建立一个空的JScrollPane对象。

② JScrollPane(Component view) 建立一个新的JScrollPane对象,当组件内容大于显示区域时会自动产生滚动轴。

③ JScrollPane(Component view,int vsbPolicy,int hsbPllicy) 建立一新的JScrollPane对象,里面含有显示组件,并设置滚动轴出现时机。

④ JScrollPane(int vsbPolicy,int hsbPolicy) 建立一个新的JScrollPane对象,里面不含有显示组件,但设置滚动轴出现时机。

  1. 滚动轴出现时机有两个参数,其中vsbPolicy可以为:

VERTICAL_SCROLLBAR_ALWAYS 始终显示垂直滚动轴。

VERTICAL_SCROLLBAR_AS_NEEDED 当组件内容垂直区域大于显示区域时出现垂直滚动轴。

VERTICAL_SCROLLBAR_NEVER 始终不显示垂直滚动轴。

  1. hsbPolicy可以为:

HORIZONTAL_SCROLLBAR_ALAWAYS 始终显示水平滚动轴。

HORIZONTAL_SCROLLBAR_AS_NEEDED 当组件内容水平区域大于显示区域时出现水平滚动轴。

HORIZONTAL_SCROLLBAR_NEVER 始终不显示水平滚动轴。

 

常用方法:

① setPreferredSize(Dimension dim) 定义此组件的尺寸。

② setLayout(LayoutManager arg0) 设置界面布局格式。

③ add(Component arg0) 添加组件。

 

6.JButton

    由JButton的构造函数可以看出:JButton与JLabel的使用相当类似,只是JButton少了排列方式的参数罢了。要是我们想设置 JButton内文字或图像的水平排列方式,我们可以利用AbstractButton抽象类所提供的setHorizontalAlignment()方法来达成。 JButton在使用上与JLabel相当类似,只是类的设计方式有所不同,JLabel类自行提供组件排列方式的方法,而JButton是继承 AbstractButton抽象类的方法来排列按钮内的内容。

 

构造方法介绍:

① JButton():建立一个按钮。

② JButton(Icon icon):建立一个有图像的按钮。

③ JButton(String icon):建立一个有文字的按钮。

④ JButton(String text,Icon icon):建立一个有图像与文字的按钮。

 

常用方法:

① setIcon(Icon icon) 定义此组件将要显示的图标。

② setText(String text) 定义此组件将要显示的单行文本。

③ setPreferredSize(Dimension dim) 定义此组件的尺寸。

④ isEnabled(boolean arg0) 定义按钮可用性。

⑤ setToolTipText(String text) 设置按钮提示文字。

 

7. JCheckBox

复选框。

构造方法介绍:

① JCheckBox() 无文本,默认未选中。

② JCheckBox(String text) 有文本,默认未选中。

③ JCheckBox(String text, boolean selected) 有文本,并指定是否选中。

④ JCheckBox(Icon icon) 有图标,默认未选中。

⑤ JCheckBox(Icon icon, boolean selected) 有图标,并指定是否选中。

⑥ JCheckBox(String text, Icon icon, boolean selected) 有文本和图标,并指定是否选中。

 

常用方法:

① setText(String text) 设置文本内容。

② setFont(Font font) 设置字体。

③ setForeground(Color fg) 设置字体颜色。

④ setSelected(boolean b) 设置复选框是否选中状态。

⑤ boolean isSelected()判断复选框是否选中。

⑥ void setEnabled(boolean enable) 设置复选框是否可用。

⑦ setIconTextGap(int iconTextGap) 设置图片和文本的间距。

 

8. JMenuBar

1JMenuBar

表示一个菜单栏。

2JMenu

表示菜单栏上的一个一级菜单。

3JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem

表示一级菜单下的一个子菜单项,三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。

PS: JMenu 继承自 JMenuItem,所以一个 JMenu 也可以当做是一个二级子菜单项,通过 JMenu 和 JMenuItem 之间的嵌套,可实现多级子菜单效果。JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem 均继承自 JMenuItem。

 

构造方法介绍:

① JMenuItem() 无文本的选项。

② JMenuItem(String text) 有文本的选项。

③ JMenuItem(Icon icon) 有图标的选项。

④ JMenuItem(String text, Icon icon) 有文本和图标的选项。

 

常用方法:(1~4为JMenuItem,5~6为JCheckBoxMenuItem、JRadioButtonMenuItem)

① setText(String text) 设置菜单显示的文本

② setIcon(Icon defaultIcon) 设置菜单显示的图标

③ setMnemonic(int mnemonic) 设置菜单的键盘助记符

④ setAccelerator(KeyStroke keyStroke) 设置修改键,使用键盘快捷键直接触发菜单项的动作

/*

 * 例如按下 ALT+N 键触发菜单项动作:

 *     menuItem.setMnemonic(KeyEvent.VK_N);

 *     menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.ALT_MASK));

 */

⑤ setSelected(boolean b) 设置 复选框/单选按钮 是否选中

⑥ boolean isSelected() 判断 复选框/单选按钮 是否选中

 

实例:

JFrame jf=new JFrame();
jf.setSize(800,600);
JMenuBar menuBar=new JMenuBar();
JMenu file=new JMenu("文件");
JMenuItem New=new JMenuItem("新建");
JMenuItem Open=new JMenuItem("打开");
JMenuItem Save=new JMenuItem("保存");
file.add(New);
file.add(Open);
file.add(Save);
menuBar.add(file);
jf.setJMenuBar(menuBar);
jf.setVisible(true);

运行得到的结果为:

 

9.FlowLayout

流式布局。

10.BorderLayout

边框布局。边框布局中共有五个位置:NorthSouthWestEastCenter

用法:

JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
JPanel NorthPanel = new JPanel();
JPanel SorthPanel = new JPanel();
JPanel WestPanel = new JPanel();
JPanel EastPanel = new JPanel();
JPanel CenterPanel = new JPanel();
frame.add(NorthPanel, BorderLayout.NORTH);
frame.add(SorthPanel, BorderLayout.Sorth);
frame.add(WestPanel, BorderLayout.West);
frame.add(EastPanel, BorderLayout.East);
frame.add(CenterPanel, BorderLayout.Center);
frame.setVisible(true);

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值