这里笔者写一些自己做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设计的更多相关文章

  1. Java的GUI设计小技巧

    不可关闭窗口 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

  2. Java的GUI设计中如何跨界面传值

    在Java设计中我们会遇到登录界面的信息,在后面的某个情况也需要使用. 比如这是笔者的一个登录界面 可以看到获取密码和账号 在这个时候的功能的完成需要密码和账号 // 登录信息的获取 public S ...

  3. Java程序设计11——GUI设计与事件处理A

    1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...

  4. java.awt包提供了基本的java程序的GUI设计工具

    java.awt包提供了基本的java程序的GUI设计工具.主要包括下述三个概念: 组件--Component 容器--Container 布局管理器--LayoutManager package T ...

  5. 十. 图形界面(GUI)设计1.图形界面设计基础

    早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上.现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单.按钮等,用户通过鼠 ...

  6. Java并发指南12:深度解读 java 线程池设计思想及源码实现

    ​深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...

  7. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  8. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  9. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

随机推荐

  1. C++批量注释代码段取消注释代码段快捷键

    1,   先选中要注释的代码段 2,按住ctrl+k+c注释本段代码 3,按住ctrl+k+u取消注释本段代码 用VS2013运行C++语言程序,运行结果闪一下就没了 解决方法是: 在return   ...

  2. Docker 网络不通的解决方法

    表现是: docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机. 执行docker info,可以看到一些警告. 可在不 ...

  3. WAS 手动删除server

    有时候WPS Server上的应用会一直start不起来,尝试卸载也会失败.在这种情况下,我们可以手动删除这个文件. 步骤如下: 1. Stop server 2. 进入$Profile_instal ...

  4. perl-基础

    1.关系运算符 数字: == != < <= > >= 字符串: eq ne lt le  gt   ge 2.循环 循环:while(){}   for(){}   last ...

  5. stm32初做项目心得

    在导师的带领下,基本了解了嵌入式的开发的基本流程: 1.首先从厂家拿到样板之后,首先进行检测,检测什么呢,先检测电源系统,看你的电源系统是否能够正常工作,就是各个管脚是否短路,断路. 2.检测完之后, ...

  6. sizeof 4字节对齐

    #include <iostream> #include<assert.h> using namespace std; typedef struct sys{ char a; ...

  7. C++旅馆问题。

    有总钱数 有每房每天住需要多少钱 问最少可以住几天 最后输入的是钱数.前边输入没个住所每天多少钱 例如: 1001 1002 1003 1004 1000 -1 100 500 600 最少一天,最多 ...

  8. android抽屉效果

    所谓抽屉  是区别于侧滑菜单 他不会把内容区域挤掉  他只是覆盖在内容区域 下边一个布局文件  一个代码   可以说的就是布局文件就是 <android.support.v4.widget.Dr ...

  9. ifconfig 运行command not found

    vi /home/lx/.bash_profile中添加 PATH=$PATH:$HOME/bin:/sbin:/bin export PATH   linux查看服务自启动  chkconfig - ...

  10. go语言中的坑

    package main; import ( "fmt" "time" "sync" ) //修改slice的坑 func add(s [] ...