博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复习Java图形界面swing&Java面试题数据库删除数据的方法&生活【记录一个咸鱼大学生三个月的奋进生活】012
阅读量:2059 次
发布时间:2019-04-29

本文共 6354 字,大约阅读时间需要 21 分钟。

记录一个咸鱼大学生三个月的奋进生活012

复习Java(javaswing图形界面)

Java Gui

Graphics User Interface 图形用户界面(GUI)
JAVA1.0中使用抽象窗口工具箱( AWT )构建GUI
在JAVA2.0中,SUN公司推出了新的用户界面库SWING
SWING相对于AWT来说,功能更强大,使用更方便
SWING并没有代替AWT,他只是AWT的子类,它的使用依赖于AWT

AWT(重量级组件)(过时)

java.awt 包
容器 —— 包含界面组件的容器
组件 —— 各种界面组件,允许用户交互
布局管理器 —— 定义组件的位置(常用)
图形绘制 —— 界面窗口绘制图形
字体 —— 更改字体的对象(常用)
事件 —— 用于用户交互的对象(常用)

swing(轻量级组件)(常用)

java.swing 包
容器 —— 包含界面组件的容器(常用)
组件 —— 各种界面组件,允许用户交互(常用)
可改变的外观 —— 可以改变图形界面的大小(常用)
图形绘制 —— 使用Java2D绘制图形(常用)

swing的优势

① 轻量型组件
② 可改变外观大小
③ 运行更稳定
④ 适合MVC三层设计模式(在之后的第一次项目复习的文章中也会提到,这里只是简单地提一下)
M:model(模型:存储数据及其业务的处理,数据访问层)
C:control(控制:业务分发/流程转发,业务逻辑层)
V:view(视图:收集/展示数据,界面层)

swing的实现步骤

① 先在开头静态声明所有可能用到的组件为null,并且继承JFrame(extends JFrame)

② 实例化界面窗口: frame = new JFrame(“界面名”); // 规范化是直接在开头让本类继承JFrame

③ 实例化用于整体布局的panel,例: panel1 = new JPanel(); panel1.setLayout(new GridLayout(2, 1)); // 这就是声明了一个两行一列的窗体布局

④ 完成panel1中所有组件的编码

⑤ 实例化getContentPane()将组件放入frame

例:Container content = frame.getContentPane();
// 用这个方法才能将所有组件放入frame
content.setLayout(new BorderLayout());
content.add(panel1, BorderLayout.CENTER);
// 将包含所有组件的panel1放入Container对象

⑥ 设置frame窗体的属性,必须写的:

窗体的大小和位置(setBounds)
用户关闭按钮(setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);)
可视化窗体设置(setVisible(true); )

swing的常用方法

JFrame对象为底部框架就是整体的窗体,实例化时用构造方法可以直接给窗体名

JPanel对象为存放组件的对象,当然Panel也可以放在其他Panel对象之上

swing常用组件

JLabel —— 标签对象

JButton(“按钮名”) —— 按钮对象

JTextField(长度) —— 文本条对象

.getText() —— 获取文本域字符方法
.setText(" ") —— 重置文本框方法

JPasswordField(长度) —— 密码条对象

.getPassword() —— 获取密码文本域密码方法,最后记得用String() 强制类型转化成字符串型

JTextArea(“默认显示的文字”, 高度, 宽度) —— 文本框对象

.getText() —— 获取文本域字符方法
.setText(" ") —— 重置文本框方法

JScrollPane —— 实现文本框滚动条的对象

JRadioButton —— 单选框对象

单选框的方法:
this.radioButtonBoy = new JRadioButton(“男”, true); —— // 实例化JRadioButton对象,构造方法中可声明(“选择点的内容”,是否默认选中)
this.radioButtonBoy.setOpaque(false); —— // setOpaque方法会设置选择框透明(false时),露出背景的颜色
this.radioButtonBoy = new JPanel(new FlowLayout(FlowLayout.CENTER, 30, 0)); —— // 设置单选框整体panel的长度:(FlowLayout.位置, 水平间距, 垂直间距)
this.buttonGroup = new ButtonGroup(); —— // 将选择点添加进buttonGroup对象才能成为单选
this.buttonGroup.add(this.radioButtonBoy); —— // 将选择点添加进buttonGroup对象步骤
.isSelected() —— 看选择框是否被选中的方法
.setSelecte(true 或 false) —— 重置选择框方法

JComboBox —— 下拉列表对象

下拉列表的方法:
this.froms = new String[]{“西安”, “北京”, “上海”, “广州”}; —— // 下拉列表是用数组放入的,所以我们要将字符串声明到数组里
this.comboBoxFrom = new JComboBox(this.froms); —— // JComboBox对象的放入方法:JComboBox(this.froms);
this.comboBoxFrom.setPreferredSize(new Dimension(178, 26)); —— // 用于设置下拉列表的大小:JComboBox对象的实例名.setPreferredSize(new Dimension(长度, 高度));
.getSelectedItem().toString() —— 获取下拉列表选中信息,要用强制类型转化
.setSelectedIndex(下标) —— 重置下拉列表的方法,会重置成该下标的信息

Font —— 字体设置

设置字体样式的方法(setFont)—— setFont(new Font(“字体”, Font.样式, 字体大小));
设置字体颜色的方法(setForeground)—— setForeground(Color.颜色);

swing常用布局

FlowLayout(FlowLayout.位置) —— 可以实例化FlowLayout时设置其下的组件浮动

flowLayout中的setHgap方法 —— 设置各个组件之间的水平间隙

flowLayout中的setVgap方法 —— 设置各个组件之间的垂直间隙

setHorizontalAlignment(JLabel.CENTER) —— 设置标签内容沿 X 轴的对齐方式,也就是调整文字的水平对齐方式

setVerticalAlignment(JLabel.BOTTOM) —— 设置标签内容沿 Y 轴的对齐方式,调整文字的竖直(上下的)对齐方式

setBackground(Color.颜色)方法 —— 设置组件的背景颜色

new JLabel(“标签名”, new ImageIcon(“图片位置”) ,JLabel.位置) —— 构造方法时就可以设置标签中的内容及其对齐方法还有设置图片

swing常用的布局管理器

① FlowLayout —— 流式布局器

② BorderLayout(组件之间的宽, 组件之间的高) —— 边框布局器,但BorderLayout方法中最多只能有五个组件,多了就无法显示,呈上下长,左右矮的五个布局

③ GridLayout(行, 列) —— 行列布局器

④ BoxLayout —— Box布局管理器

用法举例:如果需要五个横着panel时需要声明一个大的竖着的box包裹住五个横着的box
.createVerticalBox()创建竖着的box方法
.createHorizontalBox()创建横着的box方法
.createVerticalStrut(间距)设置和上一个box的间距

⑤ GridBagLayout —— 精确布局管理器

实现精确布局管理器的步骤:
1、this.panelBody = new JPanel(new GridBagLayout());
// 实例化GridBagLayout()对象是精确布局管理器要在放入Container对象之前就写

2、GridBagConstraints constraints = new GridBagConstraints();

// 实例化GridBagConstraints()对象才能将组件放入,GridBagLayout()对象只是划分了区域
3、constraints.gridx = 1; // constraints实例名.gridx是GridBagConstraints()布局的x轴
constraints.gridy = 0; // constraints实例名.gridy是GridBagConstraints()布局的y轴
// 这是给每个panel时都要写的,这是放进精确布局管理器的位置

4、this.总panel.add(this.labelTitle, constraints);

// 将这个标签以constraints实例名也就是精确布局管理器放入对象再放入总的panel

5、constraints.anchor = GridBagConstraints.位置;

// 这句的意思是在这之后放入的组件都靠某个方向对齐,可以用于最后的按钮布局

swing设置窗体frame的属性

.setTitle(“界面框名”) —— 设置界面框名方法

.setSize(界面框的宽, 界面框的高) —— 设置界面框初始的大小
.setLocation(x坐标, y坐标) —— 设置界面框初始的位置
更便捷的:.setBounds(x坐标, y坐标, 界面框的宽, 界面框的高)
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法 —— 使得用户点击右上角的X时界面就会被关闭
.setVisible(true)方法 —— 设置窗体可视化,必须要有!

Java的三种弹窗

1、消息框:JOptionPane.showMessageDialog(在哪弹出,“弹出的文字内容”);

这个消息框只能点击确认

2、选择框:JOptionPane.showConfirmDialog(在哪弹出,“弹出的问题内容”);

选择框会有选项yes或no,再根据选的是yes还是no进行之后的操作

3、输入框(给一个变量接住用户输入的内容):String 变量 = JOptionPane.showInputDialog(在哪弹出,“弹出的问题内容”);

模式框概念:

不能越过这个框对下面的框进行操作
非模式框概念:
可以越过这个框对下面的框进行操作

设置窗体背景图片的步骤

① 新建一个背景类backgroundclass继承JPanel

② 在该类中实例化一个img图片
③ 重写paintComponent设置背景的方法
④ 方法中写: g.drawImage(this.图片实例化的名.getImage(), x从哪开始, y从哪开始, this.getWidth(), this.getHeight(), this);
⑤ 然后在需要设置背景图片的页面实例化这个backgroundclass背景类即可

swing的高级方法(菜单(JMenu)、工具栏(JToolBar)、标签面板(JTabbedPane))

菜单(JMenu):

菜单是独立于ContentPane的,默认就放在界面的最上面

生成菜单的步骤:

① this.menuBar = new JMenuBar(); —— // 实例化JMenuBar
② 书写菜单的功能组件,例如JMenu…
③ this.menuBar.add(this.组件名); —— // add到menubar才能在菜单栏显示出来
④ this.setJMenuBar(this.menuBar);

实例化Menu时:

实例化JMenu有复选列表的类:

实例化时可以用构造方法直接给按键名。
有复选列表的菜单列表在写完小的功能组件时要添加至大的有复选列的JMenu组件中:
this.JMenu组件.add(this.小的无复选的JMenuItem组件);

实例化JMenu没有复选列表的类:

实例化时也可以用构造方法直接给按键名。

JMenu常用的方法:

添加热键方法:

this.菜单功能组件名.setMnemonic(‘按键’); —— // setMnemonic() 方法是设定热键,构造方法内给按键,热键是为了当没有鼠标的情况下用键盘操作所有功能的,使用方法是alt+给定按键

添加快捷键方法:

this.菜单功能组件名.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_按键, InputEvent.按键_MASK)) —— // 这是设置快捷键方法

添加有复选列表的功能组件之间的横线:

this.menuFile.add(new JSeparator()); —— // 必须写在两个小的功能组件添加至大的复选列表组件之间不然就显示不出来横线

让这个按键变灰点不了:

this.菜单按键组件.setEnabled(false);

工具栏(JToolBar):

this.toolBar = new JToolBar(“myToolbar”); —— // 可以在构造方法中就命好名,这个命名是在拖动工具栏之后才能看到的

this.button组件 = new JButton(new ImageIcon("./img/1.png")); —— // JButton实例化,在构造方法中可以通过new ImageIcon(“图标位置”)设定工具栏图标,一般工具栏就是和按钮组件配合使用

this.toolBar.add(this.工具栏之中的组件); —— // 写完要放在工具栏里的组件之后记得add进toolBar

setFloatable(false); —— // 设置不能拖动工具栏的方法,默认为true可拖动

标签面板(JTabbedPane):

设计原则:每个点击标签可以切换的页面都要具有相关性

this.标签组件 = JTabbedPan —— // 实例化

JTabbedPane.位置 —— // 设置标签区域的位置

this.标签组件 = add(“标签名”, panel组件名) —— // 将两个切换的panel添加进tabbedPane

相关思维导图:

学习Java面试题(数据库删除数据的方法)

健身

今天出汗不多所以多有氧了一会,400Cals结束的

照片分享

作者:ANNIE仲仲  作品名:兽脊  出自500px社区

2021.06.17  by wyh

转载地址:http://fnalf.baihongyu.com/

你可能感兴趣的文章
Windows下使用jsoncpp
查看>>
Ubuntu下测试使用Nginx+uWsgi+Django
查看>>
Windows下编译x264
查看>>
visual studio调试内存泄漏工具
查看>>
开源Faac实现PCM编码AAC
查看>>
Windows下wave API 音频采集
查看>>
借船过河:一个据说能看穿你的人性和欲望的心理测试
查看>>
AndroidStudio 导入三方库使用
查看>>
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>
解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
查看>>
解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
查看>>
MFC程序添加console窗口+printf打印输出信息
查看>>
VS生成DLL文件供第三方调用
查看>>
Android Studio color和font设置
查看>>
android GLSurfaceView匹配屏幕宽度及视频宽高比设置view大小
查看>>
解决用android Studio开发不能去除标题栏的问题
查看>>
[Python] windows下360急速浏览器获取URL的Headers
查看>>
AndroidStudio 清除无用资源压缩项目大小
查看>>
AndroidStudio导入其他来源项目容易出现的问题
查看>>
VS解决error C2664: “DWORD GetCurrentDirectoryW(DWORD,LPWSTR)”: 无法将参数 2 从“char [260]”转换为“LPWSTR
查看>>