【精品】swing组件(可编辑.ppt

上传人:1595****071 文档编号:86273228 上传时间:2023-04-14 格式:PPT 页数:73 大小:2.44MB
返回 下载 相关 举报
【精品】swing组件(可编辑.ppt_第1页
第1页 / 共73页
【精品】swing组件(可编辑.ppt_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《【精品】swing组件(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】swing组件(可编辑.ppt(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、SWING组件按钮按钮 经常用到的按钮 JButton、JToggleButton、JCheckBox、JRadioButton 均是AbstractButton的子类或间接子类都可以设置文本、设置图标、注册事件监听程序 在AbstractButton中定义了各种按钮所共有的一些方法,例如addActionListener()、setEnabled()、setText()、setIcon()等 按钮类之间继承关系按钮类之间继承关系 AbstractButtonJButtonJToggleButtonJMenuItemJCheckBoxJRadioButton普通按钮普通按钮JButton JB

2、utton 构造方法JButton()创建一个既没有显示文本也没有图标的按钮JButton(Icon icon)创建一个没有显示文本但有图标的按钮 JButton(String text)创建一个有显示文本但没有图标的按钮 JButton(String text,Icon icon)创建一个既有显示文本又有图标的按钮 普通按钮普通按钮JButtonJButton构造显示文本为“Sample”的按钮 构造显示文本为“Sample”、带有钻石形状小图标的按钮 JButton b=new JButton(“Sample”);JButton b=new JButton(Sample,new Image

3、Icon(icon.gif);JButton方法方法可以通过setText()动态地改变按钮上的显示文本,通过setEnabled()改变按钮的状态程序8-2setMnemonic()方法可以为按钮设置快捷键setActionCommand()方法为按钮设置一个命令名 getActionCommand()方法 因此当事件发生时,判断是在哪一个按钮上发生的 b1.setMnemonic(KeyEvent.VK_S);切换按钮切换按钮JToggleButton是具有两种状态的按钮,即选中状态和未选中状态JToggleButton的构造方法JToggleButton()创建一个既没有显示文本也没有图

4、标的切换按钮JToggleButton(Icon icon)创建一个没有显示文本但有图标的切换按钮JToggleButton(Icon icon,boolean selected)创建一个没有显示文本但有图标和指定初始状态的切换按钮JToggleButton(String text)创建一个有显示文本但没有图标的切换按钮JToggleButton(String text,boolean selected)创建一个有显示文本和指定初始状态但没有图标的切换按钮JToggleButton(String text,Icon icon)创建一个既有显示文本又有图标的切换按钮JToggleButton(S

5、tring text,Icon icon,boolean selected)创建一个既有显示文本又有图标和指定初始状态的切换按钮 JCheckBox,JRadioButton 都是JToggleButton的子类,构造方法的格式与JToggleButton相同,它们也都具有选中和未选中两种状态 isSelected()方法获知按钮的当前状态当返回值为真(true)时表示处于选中状态,而返回值为假(false)时则表示处于未选中状态 程序程序8-3程序8-3说明 JToggleButton、JCheckBox和JRadioButton等具有两种状态的按钮可以注册ItemEvent事件监听程序在I

6、temListener接口中声明了如下方法:public void itemStateChanged(ItemEvent e);当按钮的状态发生改变时,该方法将会被调用 程序程序8-3说明说明多个组件可以使用共同的事件处理程序在ActionEvent、ItemEvent等事件类对象中,都提供了getSource()方法,可以获取事件源,该方法的返回类型为Object ItemEvent中另外提供了一个getItem()方法,作用与getSource()方法相同 public Object getSource()需要进行类型转换,例如:JRadioButton rb=(JRadioButton)

7、e.getSource();程序程序8-3说明说明按钮可以添加到按钮组(ButtonGroup)中,这时首先要创建一个按钮组对象,然后调用按钮组的add()方法将按钮添加到按钮组ButtonGroup group=new ButtonGroup();group1.add(cb4);group1.add(cb5);group1.add(cb6);当多个按钮被添加到同一个按钮组之后,只能有一个按钮处于被选中状态 标签标签标签(JLabel)对象通常用于显示提示性的文本信息或图标 构造方法有六种形式 JLabel()构造一个既不显示文本信息也不显示图标的空标签JLabel(Icon image)构造

8、一个显示图标的标签JLabel(String text)构造一个显示文本信息的标签JLabel(Icon image,int horizontalAlignment)构造一个显示图标的标签,水平对齐方式由int型参数horizontalAlignment指定JLabel(String text,int horizontalAlignment)构造一个显示文本信息的标签JLabel(String text,Icon icon,int horizontalAlignment)构造一个同时显示文本信息和图标的标签将显示内容设置为水平居中、底部对齐可以通过setHorizontalTextPositi

9、on(int textPosition)setVerticalTextPosition(int textPosition)指定文本信息和图标的相对位置下面命令设置文本信息显示在图标的底部并且居中 label.setHorizontalAlignment(JLabel.CENTER);label.setVerticalAlignment(JLabel.BOTTOM);label.setVerticalTextPosition(JLabel.BOTTOM);label.setHorizontalTextPosition(JLabel.CENTER);程序程序8-4可以使用setText(Strin

10、g text)方法修改显示在标签上的文本信息,也可以使用setIcon(Icon icon)方法修改标签上的图标,但是在程序运行过程中,用户不能对标签内容进行修改程序8-4 组合框组合框组合框(JComboBox)是一个下拉式菜单,它有两种形式:不可编辑的和可编辑的,对不可编辑的JComboBox,用户只能在现有的选项列表中进行选择;而可编辑的JComboBox,用户既可以在现有选项中选择,也可以输入新的内容 JComboBox构造方法构造方法 JComboBox()创建一个没有任何可选项的组合框JComboBox(Object items)根据Object数组创建组合框,Object数组的元

11、素即为组合框中的可选项 创建一个具有五个可选项的组合框:String itemList=One,Two,Three,Four,Five;JComboBox jcb=new JComboBox(itemList);JComboBox类中方法类中方法 public void addItem(Object anObject)在末尾位置添加新的可选项public void insertItemAt(Object anObject,int index)在index指定的位置添加新的可选项anObjectpublic void removeAllItems()删除所有可选项public void remo

12、veItem(Object anObject)删除由anObject指定的可选项public void removeItemAt(int anIndex)删除指定位置(由anIndex指定)的可选项 程序程序8-5 程序8-5每当用户在组合框jcb1中进行选择,被选中的选项就会通过下面命令被插入到组合框jcb2中的第一个位置:getSelectedItem()方法可获得用户的当前选项。在插入选项时,选项的序号是从0开始的组合框上的用户事件既可以通过ActionListener处理,也可以通过ItemListener处理,但是用户的一次选择操作,会引发两个ItemEvent事件,因此通常是使用A

13、ctionListener处理 jcb2.insertItemAt(jcb1.getSelectedItem(),0);列表列表列表(JList)是可供用户进行选择的一系列可选项 构造方法 JList()构造一个空列表JList(ListModel dataModel)构造一个列表,列表的可选项由ListModel型参数dataModel指定JList(Object listData)构造一个列表,列表的可选项由对象数组listData指定JList(Vector listData)构造一个列表,列表的可选项由Vector型参数dataModel 列表列表 根据String数组构造一个包含四个

14、可选项的列表 String data=one,two,three,four;JList dataList=new JList(data);Vector listData=new Vector();listData.addElement(one);listData.addElement(two);listData.addElement(three);listData.addElement(four);JList list=new JList(listData);ListModel 列表使用ListModel保存它的可选项,ListModel是一个接口,其定义为:public interface

15、ListModel int getSize();/返回列表的长度Object getElementAt(int index);/返回指定位置的可选项void addListDataListener(ListDataListener l);/注册事件监听程序,监听列表可选项的变化void removeListDataListener(ListDataListener l);/删除监听程序创建列表创建列表当根据数组或Vector创建列表时,构造方法将自动地创建一个缺省的、实现了ListModel接口的对象,该对象是不可变的 如果希望列表的可选项是动态改变的,需要在创建列表时提供一个ListMode

16、l对象,在通常情况,可以用一个DefaultListModel对象DefaultListModel类定义在Swing包中,它给出了ListModel的缺省实现。当有特殊需要时,也可以自定义一个子类继承AbstractListModel,AbstractListModel是定义者Swing包中的抽象类,给出了ListModel接口的部分实现 程序程序8-6 程序8-6首先创建一个DefaultListModel对象,使用addElement(Object obj)方法添加列表可选项然后根据DefaultListModel对象创建列表 listModel=new DefaultListModel(

17、);listModel.addElement(one);listModel.addElement(two);list=new JList(listModel);创建列表创建列表可以使用JList中定义的setModel(ListModel model)方法设置新的ListModel 可以将列表对象放入JScrollPane中以提供滚动功能 列表支持单多项选择,使用JList中定义的setSelectionMode(int selectionMode)方法对列表的选择模式进行设置 ListSelectionModel.SINGLE_SELECTION 只能进行单项选择ListSelectionM

18、odel.SINGLE_INTERVAL_SELECTION 可多项选择,但多个选项必须是连续的ListSelectionModel.MULTIPLE_INTERVAL_SELECTION 多项选择,多个选项可以是间断的,这是选择模式的缺省值 列表列表 在列表上选择时,将引发ListSelectionEvent事件addListSelectionListener(ListSelectionListener listener)方法注册对应的事件监听程序 ListSelectionListener接口中,只包含一个方法:public void valueChanged(ListSelectionE

19、vent e)ListSelectionEvent和ListSelectionListener均定义在javax.swing.event包中 程序程序8-7 程序8-7 文本组件文本组件用于显示信息和提供用户输入功能 在SWING中提供了文本域(JTextField)、口令输入域(JPasswordField)、文本区(JTextArea)等多个文本组件,都有一个共同的基类JTextComponent JTextComponent一些方法一些方法 getSelectedText()从文本组件中提取被选中的文本内容getText()从文本组件中提取所有文本内容getText(int offs,i

20、nt len)从文本组件中提取指定范围的文本内容select(int selectionStart,int selectionEnd)在文本组件中选中指定范围的文本内容selectAll()在文本组件中选中所有文本内容setEditable(boolean b)设置为可编辑或不可编辑状态setText(String t)设置文本组件中的文本内容setDocument(Document doc)设置文本组件的文档copy()复制选中的文本到剪贴板cut()剪切选中的文本剪贴板paste()将剪贴板的内容粘贴到当前位置 文本域文本域 JTextField 文本域是一个单行的文本输入框,可用于输入少

21、量文本 五个构造方法JTextField()构造一个空文本域JTextField(int columns)构造一个具有指定列数的空文本域,JTextField(String text)构造一个显示指定初始字符串的文本域JTextField(String text,int columns)构造一个具有指定列数、并显示指定初始字符串的文本域 JTextField(Document doc,String text,int columns)构造一个使用指定文档、具有指定列数、并显示指定初始字符串的文本域,doc可以为null,此时一个缺省的PlainDocument文档对象将会被创建JTextFiel

22、d构造一个列数为30、初始字符串为“Single Line”的文本域 在构造方法中所指定的列数,是一个希望的数值,由于组件的大小和位置通常是由布局管理器决定的,因此,指定的这些数据很有可能被忽略 JTextField tf=new JTextField(“Single Line”,30);程序程序8-8 程序8-8 程序程序8-9 程序8-9是对文本域中ActionEvent事件进行处理的一个例子 用setEditable(boolean)方法将文本域设定为可编辑或不可编辑状态 文本区文本区 JTextArea 文本区是一个多行多列的文本输入框,有多种构造方法 JTextArea()构造一个空

23、文本区JTextArea(String text)构造一个显示指定初始字符串的文本区JTextArea(int rows,int columns)构造一个具有指定行数和列数的空文本区,JTextArea(String text,int rows,int columns)构造一个具有指定行数和列数、并显示指定初始字符串的文本区JTextArea(Document doc)构造一个使用指定文档的文本区JTextArea(Document doc,String text,int rows,int columns)构造一个使用指定文档、具有指定行数和列数、并显示指定初始字符串的文本区 文本区文本区构造

24、一个4行、30列、显示初始字符串“Initial text”的文本区 对文本区进行操作的方法 用户按“Enter”或“Return”键的结果只是向缓冲区输入一个字符,并不能表示输入结束,因此,当需要识别用户“输入完成”时,通常要在文本区旁放置一个“Apply”或“Commit”之类的按钮 JTextArea ta=new JTextArea(“Initial text”,4,30)append(String str)将指定文本追加到文本区。insert(String str,int pos)将指定文本插入到文本区的特定位置。replaceRange(String str,int start,i

25、nt end)指定文本替换文本区中的部分内容 程序程序8-10 程序8-10当用户单击Copy按钮时,第一个文本区中选中的内容(或全部内容)将被添加到第二个文本区中 当用户单击Clear按钮时,第二个文本区中的内容将被清空 菜单组件菜单组件SWING包中提供的多种菜单组件 JMenuBar、JMenuItem、JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem和JPopupMenu 菜单栏菜单栏菜单栏是窗口中的主菜单,用来包容一组菜单,只有一种构造方法 JMenuBar()菜单栏菜单栏JFrame、JApplet和JDialog等类中定义了setJMenu

26、Bar(JMenuBar menu)方法,可以把菜单栏放到窗口的上方 JMenuBar上也可以注册事件监听程序,但通常情况下,对JMenuBar上的用户事件都不进行处理 JFrame frame=new JFrame(“JMenuBar”);JMenuBar mb=new JMenuBar();frame.setJMenuBar(mb);菜单菜单菜单是最基本的下拉菜单,用来包容一组菜单项或子菜单。构造方法如下 菜单加入菜单栏或者另一个菜单中 public Menu(String label)label指定了菜单上的文本。JMenuBar menubar=new JMenuBar();JMenu

27、 menu1=new JMenu(File);JMenu menu2=new JMenu(Edit);menubar.add(menu1);menubar.add(menu2);菜单项菜单项常用的菜单构造方法 JMenuItem(Icon icon)构造一个只显示图标的菜单项,图标由Icon型参数icon指定 JMenuItem(String text)构造一个只显示文本的菜单项,文本由String型参数text指定JMenuItem(String text,Icon icon)构造一个同时显示文本和图标的菜单项,文本由String型参数text指定,图标由Icon型参数icon指定JMenu

28、Item(String text,int mnemonic)构造一个显示文本并且有快捷键的菜单项,文本由String型参数text指定,快捷键由int型参数mnemonic指定 JMenu m1=new JMenu(“File”);JMenuItem mi1=new JMenuItem(Save,KeyEvent.VK_S);JMenuItem mi2=new JMenuItem(“Load”);JMenuItem mi3=new JMenuItem(“Quit”);m1.add(mi1);m1.add(mi2);m1.add(mi3);构造了三个菜单项,分别显示文本“Save”、“Load”

29、和“Quit”,其中第一个菜单项的快捷键为Ctrl+S,三个菜单项均被加入菜单m1中 快捷键也可以在菜单项被创建之后,通过setMnemonic(char mnemonic)方法进行设置 菜单方法菜单方法setAccelerator(KeyStroke keyStroke)方法 为菜单项设置加速键 addSeparator()和insertSeparator(int index)单项间加入分隔线 创建了一个菜单项,然后为其设置快捷键和加速键:JMenuItem menuItem=new JMenuItem(Open.);menuItem.setMnemonic(KeyEvent.VK_O);m

30、enuItem.setAccelerator(KeyStroke.getKeyStroke (KeyEvent.VK_1,ActionEvent.ALT_MASK);m1.add(mi1);m1.add(mi2);m1.addSeparator();m1.add(mi3);菜单方法菜单方法在javax.swing包中定义的JSeparator类,也可以加入分隔线:ActionEvent事件当菜单中的菜单项被选中时,将会引发一个ActionEvent事件,因此通常需要为菜单项注册ActionListener以便对事件作出反应 JMenu是JMenuItem的子类,而JMenuItem是Abstr

31、actButton的子类,因此JMenu和JMenuItem的使用方法均与按钮有类似之处 m1.add(mi1);m1.add(mi2);m1.add(new JSeparator();m1.add(mi3);复选和单选菜单项复选和单选菜单项 这是两种特殊的菜单项,在复选菜单项前面有一个小方框,在单选菜单项前面有一个小圆圈,可以进行选中或不选中的操作,使用方法与复选按钮和单选按钮类似当菜单项的检验状态发生改变时,会引发ItemEvent事件,使用ItemListener中的itemStateChanged()对此事件进行响应 构造方法构造方法 boolean型参数指定菜单项的初始状态 复选菜单

32、项构造方法 单选菜单项构造方法 JCheckBoxMenuItem(Icon icon)JCheckBoxMenuItem(String text)JCheckBoxMenuItem(String text,boolean b)JCheckBoxMenuItem(String text,Icon icon)JCheckBoxMenuItem(String text,Icon icon,boolean b)JRadioButtonMenuItem(Icon icon)JRadioButtonMenuItem(Icon icon,boolean selected)JRadioButtonMenuI

33、tem(String text)JRadioButtonMenuItem(String text,boolean selected)JRadioButtonMenuItem(String text,Icon icon)JRadioButtonMenuItem(String text,Icon icon,boolean selected)程序程序8-11程序8-11是建立菜单系统的一个例子,它使用到了我们前面介绍的几种菜单组件 弹出式菜单弹出式菜单弹出式菜单(JPopupMenu)是一种比较特殊的独立菜单,可以根据需要显示在指定位置。有两种构造方法 public JPopupMenu()构造一个

34、没有名称的弹出式菜单public JPopupMenu(String label)构造一个有指定名称的弹出式菜单弹出式菜单弹出式菜单构造一个名为“Popup”的弹出式菜单加入菜单或菜单项 在显示弹出式菜单时,必须调用show()方法 JPopupMenu p=new JPopupMenu(“Popup”)JMenuItem s=new JMenuItem(“Save”);JMenuItem l=new JMenuItem(“Load”);p.add(s);p.add(l);public void show(Component origin,int x,int y)需要有一个组件作参数,该组的位

35、置将作为显示弹出式菜单的参考原点 程序程序8-12 程序8-12是一个创建并显示弹出式菜单的例子 该程序的运行结果 对话框对话框对话框(JDialog)是与框架类似的可移动窗口,区别在于具有较少的修饰并且能够被设置为“模式(modal)”窗口对话框的构造方法JDialog(Frame owner)构造一个没有标题的非模式对话框JDialog(Frame owner,boolean modal)构造一个没有标题的对话框,boolean型参数modal指定对话框是否为模式窗口JDialog(Frame owner,String title)构造一个有标题的非模式对话框,JDialog(Frame

36、owner,String title,boolean modal)构造一个有标题的对话框对话框对话框构造一个标题为“Dialog”的模式对话框,该对话框为框架frame所拥有 当对话框的拥有者被清除(destroyed)时,对话框也会被清除 对话框在显示时,如果其拥有者被最小化,对话框也将变为不可见,当其拥有者再次显示时,对话框会随之变为可见 setVisible(true)方法显示,setVisible(false)方法可以将一个对话框隐藏起来 JDialog dialog=new JDialog(frame,“Dialog”,true)对话框对话框 对话框是一种可以反复使用的资源,当某个对

37、话框不需要显示时,不要立即将其清除,而是继续保留它,等待以后再用 对话框可对各种窗口事件进行监听,例如激活窗口、关闭窗口等 对话框也是顶层容器,我们可以向对话框的内容窗格中添加各种组件 程序程序8-13 程序8-13构造了一个对话框,当用户按框架中的按钮时,对话框将被显示出来 标准对话框标准对话框 SWING中还提供了用于显示标准对话框(JOptionPane)的JOptionPane类 定义了多个showXxxDialog形式的静态方法showConfirmDialog 确认对话框,显示问题,要求用户进行确认(yes/no/cancel)showInputDialog 输入对话框,提示用户进

38、行输入showMessageDialog 信息对话框,显示信息,告知用户发生了什么情况 showOptionDialog 选项对话框,显示选项,要求用户进行选择 showXxxDialog方法的参数方法的参数 Component parentComponent对话框的父窗口对象,其屏幕坐标将决定对话框的显示位置;此参数也可以为null,表示采用缺省的Frame作为父窗口,此时对话框将设置在屏幕的正中 String title对话框的标题 Object message显示在对话框中的描述信息。该参数通常是一个String对象,但也可以是一个图标、一个组件或者一个对象数组 showXxxDialo

39、g方法的参数方法的参数int messageType对话框所传递的信息类型。可以为以下常量除PLAIN_MESSAGE之外,其他每种类型都对应于一个缺省图标 ERROR_MESSAGE INFORMATION_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE questionquestioninformationinformationwarningwarningerrorerrorshowXxxDialog方法的参数方法的参数int optionType对话框上按钮的类型,可以为以下常量:DEFAULT_OPTION YES_NO_O

40、PTION YES_NO_CANCEL_OPTION OK_CANCEL_OPTION Object options 对话框上的选项。在输入对话框中,通常以组合框形式显示,在选项对话框中,则指按钮的选项类型。该参数通常是一个String数组,但也可以是图标或组件数组 showXxxDialog方法的参数方法的参数 Icon icon对话框上显示的装饰性图标,如果没有指定,则根据messageType 参数显示缺省图标 Object initialValue初始选项或输入值 实例实例JOptionPane.showMessageDialog(frame,File not found.,An er

41、ror,JOptionPane.ERROR_MESSAGE);实例实例JOptionPane.showOptionDialog(frame,Click OK to continue,Warning,JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,options,options0);showXxxDialog()返回类型返回类型 showMessageDialog()没有返回值showConfirmDialog()和showOptionDialog()方法返回int型数值,代表用户选择按钮的序号(JOptionPane中定义

42、了YES_OPTION、NO_OPTION、CANCEL_OPTION、OK_OPTION和CLOSED_OPTION等常量,分别代表用户选择了YES、NO、CANCEL、OK按钮以及未选择而直接关闭了对话框)showInputDialog()方法的返回值为String或Object,代表用户的输入或选项 JOptionPane的例子的例子程序8-14 该程序创建了四个按钮和一个文本域,当用户单击某个按钮,屏幕上将会显示出对应的标准对话框,用户在确认、输入和选项对话框中的操作结果将显示在文本域中 文件对话框文件对话框专门用于对文件(或目录)进行浏览和选择的对话框,常用的构造方法:JFileCh

43、ooser()根据用户的缺省目录创建文件对话框JFileChooser(File currentDirectory)根据File型参数currentDirectory指定的目录创建文件对话框JFileChooser(String currentDirectoryPath)根据String型参数currentDirectoryPath指定的目录创建文件对话框 文件对话框显示文件对话框显示 showOpenDialog(Component parent)显示一个“打开”文件对话框 showSaveDialog(Component parent)显示“保存”文件对话框 showDialog(Comp

44、onent parent,String approveButtonText)显示一个自定义的文件对话框 标题和按钮上的文本由String型参数approveButtonText指定 Component型参数,指定“父组件”,决定了文件对话框的显示位置,如果该参数为null,则文件对话框显示在屏幕正中 通过getSelectedFile()方法取得用户所选择的文件 文件对话框的例子文件对话框的例子 程序8-15 当用户单击Open按钮时,“打开”文件对话框被显示出来;当用户单击Save按钮时,“保存”文件对话框被显示出来;当用户单击Delete按钮时,“删除”文件对话框被显示出来。用户进行选择之

45、后,所选文件的路径和文件名将被显示在窗口中部的文本区内 控制组件外观控制组件外观 颜色使用下面方法(在Jcomponent中定义)设置组件的前景色和背景色 java.awt.Color类的一个实例作参数,我们可以使用Color类中预定义的颜色常量,比如Color.red和Color.blue,也可以自己创建新的颜色:public void setForeground(Color c)设置前景色 public void setBackground(Color c)设置背景色 int r=255,g=255,b=0;Color myColor=new Color(r,g,b)字体字体 setFon

46、t(Font f)方法对组件中文本的字体进行设定 参数 java.awt.Font类的一个实例创建Font对象Font f=new Font(“Dialog”,Font.PLAIN,14);字体名称 字体的大小 字体的风格 Font.BOLDFont.ITALICFont.PLAINFont.BOLD+Font.ITALIC 字体字体通过java.awt包中GraphicsEnvironment类的getAvailableFontFamilyNames()方法,获得可用的字体名列表:程序8-16 GraphicsEnvironment.getLocalGraphicsEnvironment()

47、.getAvailableFontFamilyNames();绘图绘图当组件被显示时,调用 java.awt.Component类中定义paint(Graphics g)方法每当需要重绘组件时,调用repaint()方法,该方法将自动调用paint(Graphics g)javax.swing.JComponent继承java.awt.Component,它的paint(Graphics g)方法中,会调用如下三个方法:paintComponent(Graphics g)绘制组件paintBorder(Graphics g)绘制组件的边框paintChildren(Graphics g)绘制组

48、件中的子组件 在组件上绘制图形,只需要改写这个方法 GraphicsGraphics类的方法类的方法 drawArc(int x,int y,int width,int height,int startAngle,int arcAngle)drawLine(int x1,int y1,int x2,int y2)drawOval(int x,int y,int width,int height)drawPolygon(int xPoints,int yPoints,int nPoints)drawRect(int x,int y,int width,int height)drawRoundRe

49、ct(int x,int y,int width,int height,int arcWidth,int arcHeight)drawString(String str,int x,int y)fillArc(int x,int y,int width,int height,int startAngle,int arcAngle)fillOval(int x,int y,int width,int height)fillPolygon(int xPoints,int yPoints,int nPoints)fillRect(int x,int y,int width,int height)fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)绘制图形的例子绘制图形的例子 程序8-17 自定义了一个MyButton类和一个MyPanel类,分别继承JButton和JPanel。这两个自定义类对paintComponent(Graphics g)方法进行了改写 在改写paintComponent(Graphics g)方法时,需要先调用基类的paintComponent(Graphics g)方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com