这一部分简述,因为实际用到概率太小,只是了解一些概念可用于学校部分课设的可视化界面和android开发。

一、AWT

1、Frame

框架中常用的代码:

// 设置可见性
frame.setVisible(true);
// 设置大小
frame.setSize(400, 400);
// 设置背景颜色(R、G、B)
frame.setBackground(new Color(43, 157, 186));
// 设置初始位置
frame.setLocation(200,200);
// 设置大小固定不变
frame.setResizable(false);

2、事件

窗口关闭

给frame加一个窗口的监听

frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {System.exit(0);}
});
鼠标监听
frame.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        方法体....
    }
});

对象e表示鼠标,可以通过e.getX()、e.getY()等方法获得鼠标的各个属性。

键盘监听
addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent e) {
        方法体....
    }
});

对象e表示键盘,可以通过e.getKeyChar()等方式获取键盘的各个属性。

二、Swing

Swing与AWT不同之处在于,前者用的是JFrame类,后者是Frame类,前者更加全面,方法大致相同。

1、文本框

可以被用户填写内容

JTextField textField = new JTextField("Hello");

参数为文本框显示内容

JPasswordField passwordField = new JPasswordField();

这是密码框,用户写进去的内容会被加密成 “·······”

2、标签(label)

JLabel jLabel = new JLabel("IconTest",iconDemo,SwingConstants.CENTER);

第一个参数为标签的显示文本,第二个为标签的图标,第三个为标签布局

URL url = ImageIconTest.class.getResource("pkq.jpg");//加载图片
ImageIcon imageIcon = new ImageIcon(url);//设置图标对象存放加载的图片

标签的图标用指定图片表示

3、按钮(button)

JButton button = new JButton(null,imageIcon);

两个参数分别为按钮显示文本按钮图标,第二个参数参数类型为ImageIcon,可以没有。

button.setToolTipText("这是一个图片按钮");

设置按钮的提示性文本

4、文本域

JTextArea jTextArea = new JTextArea("Hello");

文本域就是多行的文本框,参数为显示文本

5、面板(panel)

JPanel panel = new JPanel(new GridLayout(1,3));

面板也是容器,可以放在frame里,这里是在面板里装了一个1行3列的网格布局。

6、布局方式

容器有方法setLayout()用来设置布局,常用的布局方式:

  • GridLayout(line,column) -> 网格布局(行,列)
  • FlowLayout() -> 流式布局 (就是横着)
  • BorderLayout() -> 边界布局 (分东南西北中五个位置)
  • null -> 绝对布局 (自己设置好所有位置)

7、下拉框(combobox)

JComboBox status = new JComboBox();
status.addItem(null);
status.addItem("选项a");
status.addItem("选项b");

这个下拉框有三个选项,第一个选项什么都不显示,第二个选项显示的是"选项a",第三个选项显示的是"选项b"。

String[] contents = {"选项1","选项2","选项3"};
JList list = new JList(contents);

这是一个列表框,用来显示某种类型的列表数据,参数类型为E<>,这是一个可以动态扩容的组件。

8、弹窗(dialog)

定义一个类继承JDialog类就可以了,需要弹的时候实例化出来。


上一篇 网络编程 下一篇 注解和反射