用Swing开发GUI程序(基础知识)

GUI(Graphics User Interface)图形用户界面,可以让用户看着界面操作,所以要比控制台程序更加直观,可以提供更加丰富的功能。

在Java中,GUI操作的支持API,一般保存在java.awt和javax.swing包中,但一般情况我们选择javax.swing,因为Swing界面开发API的功能比AWT更加强大。



一、使用窗口

(一)用JFrame类开发窗口

一般情况下使用javax.swing.JFrame类来进行窗口显示,JFrame常见的构造函数为:

public JFrame(String title)throws HeadlessException

传入一个界面标题,实例化JFrame对象。

JFrame类里面的主要窗口操作函数有:

1.设置标题: public void setTitle(String title)

2.设置在屏幕上的位置:public void setLocation(int x,int y)

其中x为窗口左上角在屏幕上的横坐标,y为窗口左上角在屏幕上的纵坐标。屏幕最左上角为原点。

3.设置大小: public void setSize(int Width,int Height)

4.设置可见性:public void setVisible(boolean b),true为可见,false不可见

当单击窗口上的关闭按钮时,窗口消失但程序没有结束运行,这时需要调用方法:

XXX.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);XXX为窗口名。

(二)用JDialog类开发窗口

用JDialog类创建的窗口是对话框。其最常见的构造函数是:

public JDialog(Frame owner,String title,boolean model)throws HeadlessException

其中owner表示显示该对话框的父窗口,title为标题,model值表示该窗口是否为模态窗口,从窗口A打开窗口B,则A为B的父窗口,如果B没有关闭时,A不能使用,则B是一个模态窗口。

(三)使用控件

控件又称为组件(Component),是面板,按钮,文本框等的统称。控件一般都有相应的类来实现,如JButton类来实现按钮控件。

      要将控件加到窗口上,为了对控件更好的组织,通常将控件加到面板上,即JPanel,再将面板加到窗口上去,通俗的讲JFrame相当于桌子,而JPanel为布,JButton,JLabel等相当于杯子,碗筷等,杯子,碗筷虽然可以直接放到桌子上但不是很规范,应该放到桌布上才对

      由于界面有可能比较复杂,所以一般不将界面的生成过程写在主函数里面,而是写一个类继承JFrame,在其构造函数中初始化界面。

  1. 标签:public JLabel(String text);
  2. 按钮:public JButton(String text);
  3. 文本框:public JTextField(int columns),参数为文本框显示的列数
  4. 多行文本框:public JTextArea(int rows,int columns),默认的文本框没有滚动条,需要使用JScrollPane类来使用滚动条,将JTextArea对象传入其构造函数,然后在界面上添加JScrollPane对象。
  5. 密码框:public JPasswordField(int columns)
  6. 菜单:

    开发菜单有步骤:首先添加菜单栏,然后在菜单栏上用add()方法添加菜单,最后在菜单中添加菜单项,构造函数分别是:

    实例化菜单栏:public JMenuBar()

    实例化菜单:  public JMenu(String s)

    实例化菜单项:public JMenuItem(String s)

(四)使用JOptionPane

用JOptionPane类通常用来显示一些消息框,输入框,确认框等。

  1. 显示消息框:

    public static void showMessageDialog(Component parentComponent,Object message)throws HeadlessException,其中参数一为父组件,可以为空,参数二表示消息内容

  2. 显示输入框:

    public static String showInputDialog(Object message)throws HeadlessException

  3. 显示确认框:

    public static int showConfirmDialog(Component parentComponent,Object message)throwsHeadlessException,参数同上

写了这么多,然鹅并没有什么作用,因为Java文档上面什么都有,在界面开发的过程中,我们不能记住每一个函数,多看文档才是正道。


时间: 2024-08-01 10:45:10

用Swing开发GUI程序(基础知识)的相关文章

java开发GUI程序一般步骤:

开发GUI程序一般步骤: 1. 引包 import java.awt.*; import javax.swing.*; 2. 继承JFrame public class Demo3 extends JFrame {} 3. 定义需要的组件 //3.定义组件 JButton jb1,jb2,jb3,jb4,jb5; int size=9; JButton jbs[]=new JButton[size]; //先分配初始空间 4. 创建组件 //4.创建组件 jb1=new JButton("中部&

SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面的知识多是自己总结,有一些参考了MSDN. sp_help 有时候想尽快查出数据库对象的相关信息,这个存储过程就很有用了.使用它可以查询出整个数据库中所有对象的相关信息.直接运行sp_help结果如下图1,

前端开发:css基础知识之盒模型以及浮动布局。

前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把它写到我的博客中,想知道自己过来翻就好啦 ^_^  下面楼主把当前的自己对css的基础认知一一给大家道来...... 盒模型 谈到盒模型,有经验的小伙伴一定滚瓜烂熟,无非就是 内容(content).填充(padding).边框(border).边界(margin): 这些属性我们可以把它转移到我们

活到老学到老:iOS开发中的基础知识(一)

本文参考 标哥的博客:宝库iOS开发笔试题 进行学习整理.与其说是看面试题,不如说是对自己知识的巩固.工欲善其事必先利其器,基础知识不牢固可能会导致编程中的一些注意不到的问题.总之一句话:活到老,学到老. 1.数组中的元素去重问题. //重复元素 NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"1"

笔记: c开发gui程序 (WM_CREATE, WS_CLIPCHILDREN , SetWindowPos)

过去两年,用c写的gui程序我一般使用的套路是: 在 winMain()中, 先创建一个主窗口, 紧接着就是在下面创建子窗口(子控件). 可能是因为写这方面的程序较少,所以也没遇到什么大问题,之前就是想枚举主窗口所有子窗口,然后设置所有子窗口的字体时使用:EnumChildWindows()会意外的抛内存访问错误,记得当时就是把EnumChildWindows()在winMain()中向前或向后移了一下位置,就没有报内存访问错误了. 我还以为只需要移动一下EnumChildWindows()在w

STM32内部Flash极速赛车网站开发C语音基础知识

真的很着急,看那极速赛车网站开发 haozbbs.comQ1446595067 些老师云里雾里说来说去,他们知道自己说的是什么吗? 正点原子:第67讲 FLASH闪存编程原理与步骤-M3第68讲 FLASH模拟EEPROM实验-M3 其实就是说STM32的闪存,主要是读/写/擦除,做出了一个风格和SPI FLASH一致的模块. 而所谓的模拟EEPROM其实是:前者是页为单位,写之前要擦除,一擦就是2k这样(李工说:主要是器件只能1-->0而不能0-->1所以擦除其实是全部覆盖成1),而后者EE

iOS开发多线程篇—基础知识 NSOperation

原文  http://www.cnblogs.com/dyf520/p/3807187.html -------NSOperation简介---- 1.NSOperation的作用 ·配合使用NSOperation和NSOperationQueue也能实现多线程编程 2.NSOperation和NSOperationQueue实现多线程的具体步骤 ·先将需要执行的操作封装到一个NSOperation对象中 ·然后将NSOperation对象添加到NSOperationQueue中 ·系统会自动将

IOS科研IOS开发笔记学习基础知识

这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollView; tableScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];//窗体大小 tableScrollView.contentSize=CGSizeMake(640, 480);//设置内容视图的大

Day-1:初识开发板与基础知识

买的这款51,ARM,AVR三合一的单片机,也不知道后面具体使用会不会有问题,先玩玩看吧. ------------------------------------------------------------------------------------------ 单片机是将CUP.存储器和I/O接口集成都一片集成电路芯片上. MCS-89C51系列:集成8位CPU.4K字节ROM(只读存储器,储存程序,断电不丢失),128字节RAM(随机储存器,储存变量,掉电丢失).4个8位并口(P0