[Java GUI]学习笔记1

Posted huamanggg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java GUI]学习笔记1相关的知识,希望对你有一定的参考价值。

前言

在看了书上的案例,都选择继承JFrame,实现Listener接口

  1. 继承JFrame,实现接口,ActionListener、KeyListener
  2. 定义组件
  3. 析构方法,实例化组件,add进panel
  4. 如果有需要就为组件添加监听

基本组件

JLabel(标签)
JButton(按钮)
ButtonGroup(按钮组)
JRadioButton(单选按钮)
JCheckBox(复选框)
JToggleButton(开关按钮)
JTextField(文本框)
JPasswordField(密码框)
JTextArea(文本区域)
JComboBox(下拉列表框)
JList(列表框)
JProgressBar(进度条)
JSlider(滑块)

JFrame

常用方法

// 设置窗口的 标题
void setTitle(String title)

// 设置窗口的 图标
void setIconImage(Image image)

// 设置窗口的 宽高
void setSize(int width, int height)
void setSize(Dimension d)

/**
 * 设置窗口关闭按钮点击后的默认操作, 参考值:
 *     WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。
 *     WindowConstants.HIDE_ON_CLOSE: 隐藏窗口(不会结束进程), 再次调用 setVisible(true) 将再次显示。
 *     WindowConstants.DISPOSE_ON_CLOSE: 销毁窗口, 如果所有可显示的窗口都被 DISPOSE, 则可能会自动结束进程。
 *     WindowConstants.EXIT_ON_CLOSE: 退出进程。
 */
void setDefaultCloseOperation(int operation)

// 设置窗口是否可放大缩小
void setResizable(boolean resizable)

// 设置窗口的 位置(相对于屏幕左上角)
void setLocation(int x, int y)
void setLocation(Point p)

// 设置窗口的 位置 和 宽高
void setBounds(int x, int y, int width, int height)
void setBounds(Rectangle rect)

// 获取窗口的位置坐标(相对于屏幕坐标空间)
Point getLocationOnScreen()
// 获取窗口的位置坐标(相对于父级坐标空间, 窗口的父级一般就是屏幕)
Point getLocation()

/**
 * 设置窗口的相对位置。
 * 如果 comp 整个显示区域在屏幕内, 则将窗口放置到 comp 的中心;
 * 如果 comp 显示区域有部分不在屏幕内, 则将该窗口放置在最接近 comp 中心的一侧;
 * comp 为 null, 表示将窗口放置到屏幕中心。
 */
void setLocationRelativeTo(Component comp)

// 设置将窗口 置顶 显示
void setAlwaysOnTop(boolean alwaysOnTop)

// 设置窗口的内容面板
void setContentPane(Container contentPane)

// 设置窗口是否可见, 窗口对象刚创建和添加相应组件后通过 setVisible(true) 绘制窗口, 其内部组件可能要此时才有宽高值
void setVisible(boolean b)

// 判断窗口是否处于显示状态
boolean isShowing()

// 销毁窗口, 释放窗口及其所有子组件占用的资源, 之后再次调用 setVisible(true) 将会重构窗口
void dispose()

// 调整窗口的大小, 以适合其子组件的首选大小和布局。
void pack()

JButton

构造方法

// 创建不带有设置文本或图标的按钮
JButton()

// 创建一个带文本的按钮
JButton(String text)

// 创建一个带图标的按钮
JButton(Icon icon)

常用方法

// 设置按钮的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

/* 以下方法定义在 javax.swing.AbstractButton 基类中 */

// 设置按钮是否可用
void setEnabled(boolean enable)

// 设置按钮在 默认、按下、不可用 时显示的图片
void setIcon(Icon defaultIcon)
void setPressedIcon(Icon pressedIcon)
void setDisabledIcon(Icon disabledIcon)

// 是否绘制边框(设置不绘制边框,再结合上面三个设置按钮状态图片的方法,可实现自定义按钮)
void setBorderPainted(boolean b);

// 获取按钮上的字符
String getActionCommand()
// 设置按钮上的字符
setActionCommand()

监听方法

// 添加 和 移除 按钮的点击事件
void addActionListener(ActionListener listener)
void removeActionListener(ActionListener listener)

实例

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Work1 {
    public static void main(String[] argv){
        final int[] c = {0};
        JFrame f = new JFrame("test");
        f.setSize(300,300);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        JButton b = new JButton();
        b.setText("点击");

        b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                c[0]++;
                b.setText("点击"+c[0]+"次");
            }
        });
        panel.add(b);
        f.setContentPane(panel);
        f.setVisible(true);
    }
}

JTextField

// 获取文本框中的文本
String getText()

// 设置文本框的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 设置颜色,分别为: 光标颜色、呈现选中部分的背景颜色、选中部分文本的颜色、不可用时文本的颜色
void setCaretColor(Color c)
void setSelectionColor(Color c)
void setSelectedTextColor(Color c)
void setDisabledTextColor(Color c)

// 设置文本内容的水平对齐方式
void setHorizontalAlignment(int alignment)

// 设置文本框是否可编辑
void setEditable(boolean b)

/* 下面方法定义在 java.awt.Component 基类中 */

// 判断组件当前是否拥有焦点
boolean isFocusOwner()

// 设置组件是否可用
void setEnabled(boolean b)

以上是关于[Java GUI]学习笔记1的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记8.2.1 JDBC实战 - 基于JDBC的GUI用户登录

java学习笔记 GUI编程

java学习笔记_GUI

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

java学习笔记_GUI

Java学习笔记