Swing组件的用法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本文来自=548757&do=blog&id=33995使用Swing组件一本章要点l框架–框架是一个图形界面程序的主窗口–在Java中,每个具有图形界面的程序至少要有一个框架,小程序有时也会使用框架–框架是由边框、标题栏、最大化、最小化、还原、移动、关闭按钮、系统菜单,以及内容窗格组成–内容窗格是框架的核心区域,主要的图形界面组件、菜单栏、工具栏都在内容窗格中–框架是一个程序的主窗口,每个具有图形界面的程序都至少要有一个框架–如果程序中还有其它窗口,并且这些窗口依赖于框架的,则应使用对话框(JDialog)–如果要使其它窗口显示在框架的内部,则应该使用内部框架(JInternalFrame)–内部框架虽然和框架很象,但它不是顶级容器组件,而是专用的容器组件–框架是JFrame类的对象。创建并显示一个框架的步骤如下:–创建一个JFrame对象,此时框架尚未显示–在添加了组件之后,调用pack函数排列组件–调用它的setVisible函数以显示框架FrameDemoFrameframe=newFrameDemoFrame();frame.setTitle(FrameDemo-框架功能演示);frame.pack();frame.setVisible(true);–标题用来描述程序,它显示在框架的标题栏上,以及系统的任务栏上–有两种设定框架标题的方法l利用setTitle函数设定标题l在构造函数中设定标题–调用框架的setTitle函数,如下所示:frame.setTitle(FrameDemo-框架功能演示);–利用setIconImage函数为程序设置图标StringimgURL=myicon.gif;ImageIconicon=newImageIcon(imgURL);frame.setIconImage(icon.getImage());–关闭程序的方法1:将关闭窗口操作设为退出程序:–frame.setTitle(FrameDemo-框架功能演示);–frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);–frame.pack();–参数代表关闭时的操作,可以有如下值:lWindowConstants.DO_NOTHING_ON_CLOSE:不做任何事,用窗口监听器进行关闭工作lWindowConstants.HIDE_ON_CLOSE:隐藏界面,这是框架和对话框对象的默认操作lWindowConstants.DISPOSE_ON_CLOSE:隐藏窗口,并且释放它使用的资源,这是内部框架对象的默认操作lJFrame.EXIT_ON_CLOSE:退出应用程序,这种退出方式只能用于应用程序的主框架中–方法2:编写窗口监听器类,在窗口关闭事件中关闭程序,如下面的代码所示:frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);frame.addWindowListener(newFrameDemoFrame_WindowListener_Closing(frame));–例题:在退出程序时,要求用户确认:publicvoidwindowClosing(WindowEvente){intreturnValue;returnValue=JOptionPane.showConfirmDialog(null,确实要退出程序吗?,退出程序,JOptionPane.YES_NO_OPTION);if(returnValue==JOptionPane.YES_OPTION)System.exit(0);}–调用此函数时会自动弹出一个对话框,要求用户确定是否退出程序–在框架中加入组件的方法:–用getContentPane函数获得内容窗格–在内容窗格中用add函数加入各种组件JPanelcontentPane;contentPane=frame.getContentPane();JPanelpanel1=newJPanel();contentPane.add(panel1);panel1.add(newJLabel(请点击下面的按钮:));panel1.add(newJButton(关闭));–主程序框架一般还有菜单栏。主程序中的菜单栏通过setJMenuBar函数来设定:–JMenuBarmenuBar=newJMenuBar();–frame.setJMenuBar(menuBar);–JMenuBar是菜单对象,实际中还需要在其中加入菜单项和菜单子项–关于菜单,后面还会有详细介绍–可以通过setBounds函数来实现setSize,setLocation这两个函数的功能:publicvoidsetBounds(intx,inty,intwidth,intheight);Rectangler=newRectangle(intx,inty,intwidth,intheight);publicvoidsetBounds(Rectangler);–setLocationRelativeTo函数,它的作用是将框架放到屏幕上一个现有的组件旁边:publicvoidsetLocationRelativeTo(Componentc);–其中c是一个已经在屏幕上显示的组件–此函数将框架放到组件c的旁边,放置原则是让放置的框架尽量靠近屏幕中间–如果函数参数为null,那么就将框架居中放置,这是常用的一种将窗口居中放置的方法–对话框是另一类常用的顶级容器–对话框与框架非常相似,复杂的对话框也能够实现框架的几乎所有功能–实际中,常用的是界面简单、功能高度特化的对话框l消息框:显示一条消息l选择框:让用户进行选择l文件选择框:选择文件进行打开、保存等操作l颜色选择框:从调色板中选择颜色–每个对话框都必须依附于框架l框架关闭以后,所有依附它的对话框也会关闭l当框架最小化成一个图标的时候,所有依附它的对话框也会自动隐藏l当框架还原的时候,对话框又会自动显示l这些操作由Swing自动实现–本小节主要介绍通用的对话框(JDialog)和消息框(JOptionPane)–例:在主框架程序中添加一个通用对话框,里面有一个文字标签和一个按钮:publicvoidshowDialog2(){JDialogdialog=newJDialog(this,对话框);JPanelpanel1=newJPanel();dialog.getContentPane().add(panel1);panel1.add(newJLabel(这是一个对话框。));panel1.add(newJButton(点击这里));dialog.pack();dialog.setVisible(true);}–对话框分为有模式的和无模式的两种类型–有模式的对话框在显示时,将屏蔽用户向对话框所属的主框架键入的所有内容,用户不能对主框架进行任何操作–无模式对话框在显示时,用户仍然可以用鼠标点击主框架,在主框架里输入内容,或移动主框架–缺省的JDialog对话框都是无模式对话框–如果要创建有模式对话框,可以在构造函数里增加一项如下:JDialogdialog=newJDialog(this,对话框,true);–也可以用setModal函数来设置对话框是有模式的还是无模式的:dialog.setModal(true);//将对话框设置成有模式的dialog.setModal(false);//将对话框设置成无模式的–消息框(JOptionPane)是一种非常简洁、专用的对话框。–例:弹出一个提示消息框:JOptionPane.showMessageDialog(frame,修改已经保存到文件中。);–消息框中的图标:l预设的图标有4种:错误图标、消息图标、警告图标和提问图标l可以显示自己定制的图标–不同界面风格下的图标风格:lWindows风格lJava风格lCDE/Motif风格lGTK+风格l对话框–常用消息框的调用:–消息框:利用静态函数showMessageDialog显示–确认框:利用静态函数showConfirmDialog显示–选择框:利用静态函数showOptionDialog显示–输入框:利用静态函数showInputDialog显示l对话框–showMessageDialog(显示消息框):–消息框是最简单的一种对话框,它的作用只是显示一条消息,它只有一个“确认”按钮,用以关闭消息框。–通过修改showMessageDialog函数的参数,可以修改消息框显示的消息、图标和消息框的标题,下面列出常用的消息框形式–showMessageDialog是一个静态成员函数,可以从类直接调用,它有三种形式:staticvoidJOptionPane.showMessageDialog(ComponentparentComponent,Objectmessage)staticvoidJOptionPane.showMessageDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType)staticvoidJOptionPane.showMessageDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType,Iconicon)–intmessageType:消息框类型,有下列值:–showConfirmDialog(显示确认框):–显示一个对话框,让用户选择“是”或“否”,用户选择的结果在返回值中给出:intchoice=JOptionPane.showConfirmDialog(frame,你是否真的要删除文件?);–执行程序,在屏幕上显示的确认框如下:–点击“是”,“否”,“撤销”都会关闭确认框,同时返回一个值:l“是”对应的返回值是JOptionPane.YES_OPTIONl“否”对应的返回值是JOptionPane.NO_OPTIONl“撤销”的返回值JOptionPane.CANCEL_OPTION–可以通过用条件语句比较返回值来确认用户点击的是哪个按钮,再进行下一步操作。–showConfirmDialog是一个静态成员函数,可直接通过类来调用–showOptionDialog(显示选择框):–用于显示定制的对话框,它是参数最多、使用最灵活的JOptionPane类对话框–可以在对话框上显示多个按钮–每个按钮的文字可以自己定制–对话框中还包括图标、提示字符串–甚至可以在对话框中加入组件–例:一个定制的对话框:String[]options={小说,诗歌,不告诉你};intchoice=JOptionPane.showOptionDialog(frame,如果将你放逐到荒岛,你最希望带本什么书?,问卷调查,JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,newImageIcon(about.png),options,options[2]);–showInputDialog(显示输入框):–该函数弹出一个对话框,提示用户输入一行文字,或者从下拉框中选择一项–输入框有很多用法,常用的有:l输入一行文字l带有缺省值的文本输入l从下拉框中选择一项内容–例,用于输入文字的对话框:StringrtnStr=JOptionPane.showInputDialog(frame,如果将你放逐到荒岛,你最希望带本什么书?);–输入文字,然后回车或单击“确认”,输入的文字会保存在rtnStr所指向的字符串里–如果按了“Esc”键,或单击“撤销”,那么键入的文字不会保存,rtnStr的值为空–可以在输入框中给出输入文字的默认值:StringrtnStr=JO

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功