终於来到我们最後一个主题了,今天我们要介绍的是图形使用者介面(graphical user interface, GUI),不知道大家有没有听过,但大家一定都用过,他就是一种与应用程序互动的友善操作机制,Windows 作业系统本身就是一个常见的例子。
Java GUI 的元件有 Swing 和 AWT 两组,在早期的 Java 中,GUI 透过 java.awt 套件中的 Abstract Window Toolkit(AWT)的元件来建构。AWT 设计的视窗图形程序会跟作业系统原本的视窗风格一致, Swing 则是完全用 Java 来撰写、操作与显示,因此在各平台间并无外观上的差异。接下来,我们会着重在 Swing 的介绍:
Java 的图形化介面由各式各样的「元素」组成,像是视窗、按钮、对话框等等,这些元素统一被称为元件(Component),依照不同功能,可分为顶层容器、中间容器、基本元件:
属於视窗类别元件,继承自 java.awt.Window,可以独立显示。
元件 | 说明 |
---|---|
JFrame | 一个普通的视窗(大多数 Swing GUI 元件的视窗使用 JFrame 作为顶层容器) |
JDialog | 对话方块 |
中间容器当作基本元件的载体,不能独立显示,继承自 javax.swing.JComponent,可以添加多个基本元件,对容器内的组件进行管理。
元件 | 说明 |
---|---|
JPanel | 一般轻量级面板容器元件,可以放置及编排元件的区域 |
JScrollPane | 带滚动条的,可以水平和垂直滚动的面板元件 |
JSplitPane | 分隔面板 |
JTabbedPane | 选项卡面板 |
JLayeredPane | 层级面板 |
继承自 javax.swing.JComponent。
元件 | 说明 |
---|---|
JLabel | 标签,用来显示不可编辑的文字或图示 |
JButton | 按钮,滑鼠点击时会触发事件 |
JRadioButton | 单选按钮 |
JCheckBox | 复选框,用来指定可选取或未选取的选项 |
JToggleButton | 开关按钮 |
JTextField | 文字框,通常用来接收使用者的输入 |
JPasswordField | 密码框,通常用在密码的输入 |
JTextArea | 文字区域,用来呈现文字内容 |
JComboBox | 下拉式选单,使用者可以从中选择项目 |
JList | 项目清单,使用者可以点击其中任何一者来进行选择,也可同时选择多个项目 |
JProgressBar | 进度条 |
JSlider | 滑动条 |
由於应用程序的 GUI 基本上属於应用程序,所以大部分的例子都会包含两个类别,一个 JFrame 子类别帮助展示新的 GUI 概念,另一个应用程序类别,其中的 main 方法会建立并显示应用程序的主要视窗。接着就来建立一个简单的视窗和元件:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
public class Frame extends JFrame{
private final JLabel label;
private final JButton button;
private final JTextField textField;
public Frame(){
super("Hello Swing"); //建立标题名称
super.setLayout(null);
label = new JLabel("Enter your name:");
label.setBounds(140, 50, 100, 30); //设定x,y,宽,高
add(label);
button = new JButton("Click me!");
button.setBounds(125, 200, 150, 25);
add(button);
textField = new JTextField(10); //设定10列
textField.setBounds(140, 100, 120, 30);
add(textField);
}
}
import javax.swing.JFrame;
public class TestFrame {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setSize(400, 300); //设定宽,长
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设定预设的关闭视窗
frame.setVisible(true); //视窗预设是不可见的
}
}
在使用每一个元件的时候,要记的先 import。在范例中可以看到有按钮,但是按下去却没有任何反应,这是当然的啦!因为我们还没告诉他要做什麽反应。当使用者与 GUI 元件互动时,此互动称为「事件」(Event),会驱动程序去执行任务。
明天我们就要针对这部分进行更详尽的说明,也会制作出一个小小的互动事件,在设计个过程中,也会增加你们对设计程序的能力,准备好要大显身手了吗?那我们明天再见罗!
<<: Day 12 - 下单电子凭证及Stock股票Order建立
这篇的上一篇:https://ithelp.ithome.com.tw/articles/10283...
前言 利用刚设计好的帖子页元件, 组合成帖子页。 元件组合 建立一个属於帖子页的frame 先在Pa...
大家好,我是读哲学读到写 Web 的 Parker ,到现在约有两年左右的开发经验,遥想当初真的是...
昨天我们使用 function 的 compose, 是从右至左执行,如果我们想由左至右执行, 那我...
今天要介绍的是v-show和v-if的差异 先来看一段官网的比较说明吧! v-if is “real...