Java的GUI设计
这里笔者写一些自己做GUI时候的心得,希望可以帮助需要学习的同学,函数的实现和界面设计不在同一个文件中,且涉及参数的传递
一、继承于JFrame
当遇到继承于JFrame的类的时候,可以省去建立对象,直接使用组件
- setBounds(200, 200, 500, 400);
- getContentPane().setBackground(Color.gray);
- setVisible(true);
- setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- setTitle("MENU");
- 其中setBounds是设计窗口的大小,getContentPane是设计组件的,setdefault设计关闭类型这些内容在使用时可以
去查一下使用的手册,由于在构建程序的时候涉及到参数的传递,因此在传递时要注意参数的一一对应关系
在使用的时候Button按钮需要建立监听。其中还包括从键盘的监听
- setBounds(200, 200, 500, 400);
- getContentPane().setBackground(Color.gray);
- setVisible(true);
- setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- setTitle("MENU");
- public void Set_User_Output(JTextField op){
- Output_Text = op;
- // 注册监听键盘事件监听器
- Output_Text.addKeyListener(new KeyAdapter() {
- // 处理键盘事件
- @Override
- public void keyTyped(KeyEvent e) {
- char key = e.getKeyChar();
- if(!(key >= KeyEvent.VK_0 && key <= KeyEvent.VK_9)){
- int su = JOptionPane.showConfirmDialog(null, "please enter Number", "WARNING",JOptionPane.OK_CANCEL_OPTION);
- if (su == 0){
- Output_Text.setText("");
- }
- e.consume();
- }
- }
- });
- }
- 监听对象也是要一一对应,不能出错,最后一个是传递当前的窗口,可以在其他的类中间关闭这个窗口的使用使用【建立的JFrame的对象】.dispose()
就可以关闭这个窗口,再通过建立的接收对象获取到用户接收到的内容
- gui.Change_Pass_Button(Change_Pass);
- gui.Logoff_Button(Logoff);
- gui.Exit_Button(Exit);
- gui.Query_Button(Query);
- gui.WithDraw_Money_Button(WithDraw_Money);
- gui.Save_Money_Button(Save_Money);
- gui.Last_Button(Last);
- gui.Set_JFrame(this);
- 以上方法基本完成了对文本的操作内容和实现函数之间的参数传递,每次在使用的时候一定要添加异常处理异常处理可以简化代码的错误判断
如果能详细的报出错误,代码就十分的友好。在取消判断是或者删除操作时一定要有确认判断。
- int ju = JOptionPane.showConfirmDialog(null, "Do you want to Back", "Tip", JOptionPane.OK_CANCEL_OPTION);
- if (ju == 0) {
- JOptionPane.showMessageDialog(null, "The interface will Exit.......");
- Id_Text.setText("");
- Pw_Text.setText("");
- Output_Text.setText("");
- // 先关闭窗口
- wm.dispose();
- // 建立新的GUI界面
- gui = new GUI();
- }
- showConfirmDialog就是用户确认的一个提示。
- 添加背景图片
- // 建立java的图像界面 background放在了label中
- // 文件的路径
- // 当文件路径带上src的时候就可以获取本地的文件
- ImageIcon image=new ImageIcon("src\\signer\\time6.jpg");
- JLabel logolabel = new JLabel(image);
- logolabel.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
- // 设置底层把图片放在最下面的一层
- getLayeredPane().add(logolabel,new Integer(Integer.MIN_VALUE));
- //设置内容面板 getContentPane前面添加 这个JFrame的对象 由于这个图片是继承了JFrame 所以不需要对象 或者使用this
- JPanel jp = (JPanel) this.getContentPane();
- //设置内容面板未透明 true代表透明 透明之后的gui界面是看不到背景图像的
- jp.setOpaque(false);
- 上面是添加背景图片的方法。音频还在探索.........。
- 二、不继承JFrame
不继承的JFrame就需要建立对象,JFrame的对象使用的时候和继承的一样但是需要添加【JFrame的对象名】.【组件方式】
关闭操作的时候【JFrame的对象】.dispose(),就可以了关于窗口关闭的四种方式可以取网上进行查看。其他的内容可以去网上查找资料。- 最后源码在GitHub上面,读者可以自行下下来查看。代码一般,笔者还在努力。
https://github.com/pzq7025
Java的GUI设计的更多相关文章
- Java的GUI设计小技巧
不可关闭窗口 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
- Java的GUI设计中如何跨界面传值
在Java设计中我们会遇到登录界面的信息,在后面的某个情况也需要使用. 比如这是笔者的一个登录界面 可以看到获取密码和账号 在这个时候的功能的完成需要密码和账号 // 登录信息的获取 public S ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- java.awt包提供了基本的java程序的GUI设计工具
java.awt包提供了基本的java程序的GUI设计工具.主要包括下述三个概念: 组件--Component 容器--Container 布局管理器--LayoutManager package T ...
- 十. 图形界面(GUI)设计1.图形界面设计基础
早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上.现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单.按钮等,用户通过鼠 ...
- Java并发指南12:深度解读 java 线程池设计思想及源码实现
深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...
- 1.JAVA之GUI编程概述
下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式: ...
- 2.JAVA之GUI编程布局
布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...
- 3.JAVA之GUI编程Frame窗口
创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...
随机推荐
- opencv: Rotate image by 90, 180 or 270 degrees
opencv2: void rotate_cw(const cv::Mat& image, cv::Mat& dest, int degrees) { ) { : dest = ima ...
- NumPy 高级索引
NumPy 高级索引 NumPy 比一般的 Python 序列提供更多的索引方式.除了之前看到的用整数和切片的索引外,数组可以由整数数组索引.布尔索引及花式索引. 整数数组索引 以下实例获取数组中(0 ...
- Array 遍历数组
public static void main(String args){ int a[][] = new int[3][4]; for(int i=0;i<a.length;i++){ for ...
- 转:WEB前端性能优化规则
14条规则摘自<High Performance Web Sites>,本文地址 1.减少Http请求 使用图片地图 使用CSS Sprites 合并JS和CSS文件 这个是由于浏览器对同 ...
- 安装vCenter server 6.0
注意,5.5的还可以直接把iso里的ova直接导入为模板,6.0之后的要拉到Windows下安装. 总路线 ESXI是服务器系统,用vsphere client连接,在client里新建一个虚拟机为W ...
- vue初学:基础概念
一.vue使用步骤: 1.引包vue.js 2.html中写要操作的DOM节点 3.创建vue对象:new Vue({options}); 4.配置options:el:(要操作的对象,用选择器,同j ...
- 问题1:设置了text-overflow : ellipsis未起作用
<style type="text/css"> * { padding: 0; } .div01 , .div02 { margin-top: 10px; border ...
- AVAudioSession应用指南
转coco-LG audiosession负责调节你的app和ios系统里的音频行为.一旦加载了audiosession你可以获得一个audiosession的单例.你可以配置这个audiosessi ...
- 通过java.net.URLConnection发送HTTP请求(原生、爬虫)
目录 1. 运用原生Java Api发送简单的Get请求.Post请求 2. 简单封装 3. 简单测试 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求.Ja ...
- ubuntu 安装Pangolin 过程
Pangolin 是一款开源的OPENGL显示库,可以用来视频显示.而且开发容易. 代码我们可以从Github 进行下载:https://github.com/zzx2GH/Pangolin.git ...