Java第9章(GUI-1).ppt

上传人:本田雅阁 文档编号:2090188 上传时间:2019-02-12 格式:PPT 页数:69 大小:259.01KB
返回 下载 相关 举报
Java第9章(GUI-1).ppt_第1页
第1页 / 共69页
Java第9章(GUI-1).ppt_第2页
第2页 / 共69页
Java第9章(GUI-1).ppt_第3页
第3页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java第9章(GUI-1).ppt》由会员分享,可在线阅读,更多相关《Java第9章(GUI-1).ppt(69页珍藏版)》请在三一文库上搜索。

1、第9章 Java图形界面设计,9.1 Java 图形界面基础 9.2 容器布局 9.3 绘制图形,9.1 Java 图形界面基础,一、概述 1、用户界面:是用户与计算机进行交互的渠道。 通常分为:命令行式字符用户界面;图形用户界面 2、GUI(Graphical User Interface): 图形用户接口/界面. 3、Java对GUI设计的支持: 1)AWT(Abstract Windowing Toolkit):抽象窗口工具包 1995年,Java 1.0,它支持GUI编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器等。 2)Swing:

2、1998年,Java 1.2,轻量级组件(支持Table,Tree等),比AWT好,但不能完全替代AWT。 AWT中的一些辅助类(如Graphics、Color、Font、LayoutManager等)仍然保持不变。另外,Swing仍然使用AWT的事件模型。,9.1 Java 图形界面基础,二、Swing常用组件及分类 1、概述 Java GUI主要的包有java.awt、java.awt.event、javax.swing。图9.1给出了有关包中常用的类及类的层次结构。该图中Applet类在java.applet包中,以J开头的类在javax.swing包中,其他类在java.awt包中。,

3、图9.1 Java GUI所用类的层次结构图,表9-1 构建图形用户界面常用的类,9.1 Java 图形界面基础,2、组件分类 容器组件:容器组件分为三类: 顶层容器:包括JFrame、JApplet、JDialog; 通用容器:包括JPanel、JScrollPane、JSplitPane、JTabbedPane、JToolBar; 专用容器:包括JInternalFrame、JLayeredPane、JRootPane等。 基本组件:基本组件包括JButton、JTextField、 JComboBox、JList、JMenu、JSlider。这些组件有的主要用于信息的显示,如JLabel

4、、JProgressBar、JToolTip等,有的用来编辑输入信息,如JTextArea、JtextField、JFileChooser、JColorChooser、JTable、JTree等。 菜单组件:菜单组件包括JMenuBar、JMenu、JMenuItem、JRadioButtonMenuItem、JCheckBoxMenuItem和JPopupMenu等。这些组件主要用于构建各种菜单。,9.1 Java 图形界面基础,图9.2 JComponent及其子类的层次结构,2、组件分类,3. JComponent类及其方法 JComponent抽象类是所有Swing组件的超类,其中定义

5、了每个组件都可以使用的方法: public void setSize(int width,int height) 设置组件或容器的大小。 public void setVisible(boolean b) 设置组件或容器是否可见。 public void setBackground(Color c) 设置组件的背景颜色,Color为颜色类。 public Color getBackground() 返回组件的背景颜色,,9.1 Java 图形界面基础,9.1 Java 图形界面基础,public void setForeground(Color c) public Color getForeg

6、round() public void setFont(Font f) 设置组件上使用的字体,Font为字体类。 public Font getFont() public Graphics getGraphics() 返回组件的图形上下文(graphics context)或绘图对象,Graphics为图形上下文类,使用该类对象可以在组件上绘制图形。 public void setToolTipText(String text) 设置组件上的提示信息。 public String getToolTipText(),4. Container类及其方法 Container类是所有容器类的超类,在编

7、写GUI程序时经常要使用这个类的方法。 容器组件的特点是:容器中可以容纳其他组件,通过调用容器的add()方法把其他组件添加到容器中。 添加到容器中的组件位置和大小由容器的布局管理器决定(Layout Manager)。,9.1 Java 图形界面基础,9.1 Java 图形界面基础,4. Container类及其方法 Container类中的常用方法: public Component add(Component comp) public Component add(Component comp, int index) 向容器中添加组件,index参数指定组件添加到容器中的位置,无index

8、参数则添加到默认位置。 public void remove(Component comp) 从容器中清除指定的组件。,9.1 Java 图形界面基础,4. Container类及其方法 public void setLayout(LayoutManager mgr) 设置容器的布局。参数mgr是布局管理器对象,它决定组件在容器中如何摆放。 public void paint(Graphics g) 在容器上绘制图形。 public void paintComponents(Graphics g) 在容器上绘制图形。 public void update(Graphics g) 更新容器上绘制

9、的图形。,9.1.2 简单的框架窗口,1. 创建简单的框架窗口 每个Swing GUI的程序必须至少有一个顶层Swing容器。 对于GUI应用程序来说,一般应该有一个主窗口,也称为框架窗口。在Swing中,框架窗口由JFrame对象实现。 JFrame类常用的构造方法: public JFrame() 创建一个没有标题的窗口对象。 public JFrame(String title) 创建一个以title为标题的窗口对象。,9.1.2 简单的框架窗口,import javax.swing.*; public class HelloSwing public static void main(S

10、tring args) JFrame frame = new JFrame(“Hello Swing“); frame.setSize(400,240); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ,程序9.1 HelloSwing.java,2. 继承JFrame类,程序9.1的方法在创建比较简单的窗口时还可以,如果窗口比较复杂,就会使得main()方法的内容过多。 一般应该先创建一个继承JFrame类的子类,然后编写程序创建该类对象。 改进的程序见下页:,程序9.2 Hello

11、Swing1.java,import javax.swing.*; public class HelloSwing1 extends JFrame public HelloSwing1() this(“ HelloSwing “); public HelloSwing1(String title) super(title); setSize(400,250); setLocation(350,250); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String

12、 args) HelloSwing1 frame = new HelloSwing1(); ,9.1.3 在框架中添加组件,若向顶层容器(JFrame、JApplet、JDialog)中添加组件,可以使用容器的add()方法实现。,import java.awt.*; import javax.swing.*; public class SimpleFrame extends JFrame JButton jButton1,jButton2; public SimpleFrame(String title) super(title); jButton1 = new JButton(“OK“);

13、 jButton2 = new JButton(“Cancel“); setLayout(new FlowLayout(); add(jButton1); add(jButton2); setSize(400,300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) JFrame frame = new SimpleFrame(“Frame With Button“); ,9.2 容器布局,9.2.1 BorderLayout布局管理器

14、 9.2.2 FlowLayout布局管理器 9.2.3 GridLayout布局管理器 9.2.4 其他布局管理器 9.2.5 面板容器及容器的嵌套 9.2.6 应用程序外观,9.2 容器布局,概述 Java语言的一个特点是强调程序的平台无关性。在Java的图形界面程序中,它是通过为每种容器提供了布局管理器(LayoutManager)来实现组件布局的,即管理组件在容器中摆放的顺序、位置、大小以及当窗口大小改变后组件如何变化等特征,从而实现跨平台特性。 常用的布局管理器有(位于java.awt包中): FlowLayout BorderLayout GridLayout CardLayout

15、和GridBagLayout,每种容器都有默认的布局管理器,也可以为容器指定新的布局管理器,使用如下方法: public void setLayout(LayoutManager layout),9.2.1 BorderLayout布局管理器,BorderLayout:边界式布局,它将容器分成东、南、西、北、中五个区域,每个区域可放置一个组件或其他容器。 是JFrame、JApplet、JDialog对象默认 布局管理器。 特点:当窗口的大小改变时,容器中的组件 大小相应改变。当窗口垂直延伸时,东、西、 中区域也延伸;而当窗口水平延伸时, 南、北、中区域也延伸。 当某个区域没有添加组件时,中央

16、组件会 占据无组件的空间,但若没有中央组件,四周组件都有,中央区域空出.,9.2.1 BorderLayout布局管理器,构造方法: public BorderLayout(int hgap, int vgap) 创建一个布局管理器对象,hgap和vgap分别指定使用这种布局时组件之间的水平间隔和垂直间隔,单位为像素。 public BorderLayout() :组件之间没有间隔。 添加组件: add(Component c, int index)方法,c为添加的组件,index为指定的位置。指定位置使用BorderLayout类定义的五个常量: BorderLayout.NORTH Bor

17、derLayout.SOUTH BorderLayout.EAST BorderLayout.WEST BorderLayout.CENTER。 如果不指定位置,组件添加到中央位置。见下页举例。,程序9.4 BorderLayoutDemo.java,import java.awt.*; import javax.swing.*; public class BorderLayoutDemo extends JFrame JButton jButton1,jButton2, jButton3,jButton4,jButton5; public BorderLayoutDemo(String ti

18、tle) jButton1 = new JButton(“北“); jButton2 = new JButton(“南“); jButton3 = new JButton(“西“); jButton4 = new JButton(“东“); jButton5 = new JButton(“中“); / 设置布局管理器 setLayout(new BorderLayout(10,10);,程序9.4 BorderLayoutDemo.java,add(jButton1, BorderLayout.NORTH); add(jButton2, BorderLayout.SOUTH); add(jBu

19、tton3, BorderLayout.WEST); add(jButton4, BorderLayout.EAST); add(jButton5, BorderLayout.CENTER); setSize(300,240); setTitle(title); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) BorderLayoutDemo window = new BorderLayoutDemo(“Border Demo“); ,程

20、序9.4 BorderLayoutDemo.java,程序运行结果如图所示:,图9-6 边界式布局,9.2.2 FlowLayout布局管理器,FlowLayout:流式布局 特点:添加组件时组件是从左到右,从上到下,一个一个地放置到容器中,一行放不下,放到下一行。当调整窗口大小后,布局管理器会重新调整组件的摆放位置,组件的大小和相对位置不变,组件的大小采用最佳尺寸。,FlowLayout类常用的构造方法,public FlowLayout(int align, int hgap, int vgap) 指定添加到容器中组件的对齐方式(align)、水平间距(hgap)和垂直间距(vgap)。

21、对齐方式align的取值: FlowLayout.LEFT:FlowLayout.RIGHT: FlowLayout.CENTER:居中对齐 水平间距是指水平方向上两个组件之间的距离,垂直间距是行之间的距离,单位都是像素。 public FlowLayout(int align) :只指定对齐方式。组件之间的水平间距和垂直间距使用默认值5个像素。 public FlowLayout():对齐和间距都采用默认值:居中对齐。 JPanel对象的缺省的布局管理器是FlowLayout。,程序9.5 FlowLayoutDemo.java,import java.awt.*; import javax

22、.swing.*; public class FlowLayoutDemo extends JFrame public FlowLayoutDemo() FlowLayout layout = new FlowLayout(FlowLayout.CENTER,10,20); setLayout(layout); add(new JButton(“Button 1“); add(new JButton(“2“); add(new JButton(“Button 3“); add(new JButton(“Long-Named Button 4“); add(new JButton(“Button

23、 5“);,程序9.5 FlowLayoutDemo.java,setTitle(“FlowLayout Demo“); / 设置窗口标题 setSize(380,150); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) FlowLayoutDemo window = new FlowLayoutDemo(); ,9.2.3 GridLayout布局管理器,也叫网格式布局,将容器分成大小相等的单元格,每个单元格可放置一个组件,每个组件占

24、据单元格的整个空间,调整容器的大小,单元格大小随之改变。,GridLayout类的构造方法,public GridLayout(int rows, int cols, int hgap, int vgap) rows和cols分别指定网格布局的行数和列数 hgap和vgap:组件水平间隔和垂直间隔,单位为像素。 行和列参数至少有一个为非0值。 public GridLayout(int rows, int cols) 缺省组件之间的间隔,组件之间间隔为0像素。 public GridLayout() 创建只有一行的网格布局对象,每个组件占一列,所有组件在一行,组件之间间隔为0像素。,GridL

25、ayout类的构造方法,注意:如果指定的行数和列数与添加的组件个数不一致时 当行数、列数都不为零,以行优先(即行值不变) 若有一个为零,则以非零值优先(非零值不变) 例: cp.setLayout(new GridLayout(3,1,10,20); 如果添加的组件多于3个,结果是3行多列。 cp.setLayout(new GridLayout(3,0,10,20); 如果添加的组件多于3个,结果是3行多列。 cp.setLayout(new GridLayout(0,3,10,20); 如果添加的组件多于3个,结果是多行3列。,9.2.3 GridLayout布局管理器,向网格布局的容器中

26、添加组件,需调用容器的add()方法即可,不用指定位置,系统按照先行后列的次序依次将组件添加到容器中。,程序9.6 GridLayoutDemo.java import java.awt.*; import javax.swing.*; public class GridLayoutDemo extends JFrame public GridLayoutDemo() setLayout(new GridLayout(0,2); add(new JButton(“Button 1“); add(new JButton(“2“);,程序9.6 GridLayoutDemo.java,add(ne

27、w JButton(“Button 3“); add(new JButton(“Long-Named Button 4“); add(new JButton(“Button 5“); setTitle(“GridLayout Demo“); pack(); / 以紧缩的形式显示组件 setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) GridLayoutDemo window = new GridLayoutDemo (); ,9.2.4 其

28、他布局管理器,除上面介绍的布局管理器外,Java语言还提供了若干布局管理器,例如:CardLayout、GridBagLayout、BoxLayout、GroupLayout和SpringLayout等。 每种布局管理器都有自己的特点,应用在特殊的场合。其中有些非常复杂,可应用于较复杂的图形用户界面的设计中。 如果界面复杂,可以考虑使用集成开发环境(IDE)来设计用户界面。,9.2.4 其他布局管理器,注意: 在设计图形界面时,Java也支持组件绝对定位的设计。 如果需要手工控制组件在容器中的大小和位置,应该将容器的布局管理器设置为null,即调用容器的setLayout()方法,并将参数指定

29、为null,然后调用组件的setLocation()方法设置组件在容器中的位置、调用setSize()或setBounds()方法设置组件的大小。 不推荐使用这种方法。,9.2.5 面板容器及容器的嵌套,由于某一种布局管理器的能力有限,在设计复杂布局时通常采用容器嵌套的方式,即把组件添加到一个中间容器中,再把中间容器作为组件添加到另一个容器中,从而实现复杂的布局。 为实现这个功能,经常使用JPanel类。 JPanel类对象经常在构造复杂布局中作为中间容器,既可以把它放入其他容器中,也可以在其上放置其他容器和组件,但它不能单独显示,需要放到JFrame或Applet这样的顶层容器中。,JPan

30、el的构造方法,public JPanel(LayoutManager layout) 创建一个面板对象,使用指定的布局管理器对象layout设置面板的布局。 public JPanel() 使用缺省的布局管理器创建一个面板,面板的缺省的布局管理器是FlowLayout。也可以在创建面板对象后重新设置它的布局,方法也是使用面板对象的setLayout()方法。,9.2.5 面板容器及容器的嵌套,使用面板容器作为中间容器构建图形用户界面程序的一般思想是: 先将组件添加到面板上,然后将面板作为一个组件再添加到顶层容器中。 例:设计一个如图所示的图形界面,程序9.7 FrameWithPanel.j

31、ava,创建两个JPanel对象,在一个JPanel对象上放置三个按钮,再将此JPanel对象添加到框架内容窗格的南部,将另一个JPanel对象添加到窗口的中央即可。,import java.awt.*; import javax.swing.*; public class FrameWithPanel extends JFrame JPanel panel_1,panel_2; public FrameWithPanel() super(“Frame With Panel“); panel_1 = new JPanel(); / 设置面板的背景颜色为青色 panel_1.setBackgro

32、und(Color.CYAN);,程序9.7 FrameWithPanel.java,panel_2 = new JPanel(); panel_2.setLayout(new FlowLayout(FlowLayout.CENTER,20,10); panel_2.add(new JButton(“Red“); panel_2.add(new JButton(“Green“); panel_2.add(new JButton(“Blue“); add(panel_1,BorderLayout.CENTER); add(panel_2,BorderLayout.SOUTH); setSize(

33、300,200); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) FrameWithPanel frame = new FrameWithPanel (); ,9.2.6 应用程序外观,为了使Java图形界面应用程序在不同系统下显示的外观与系统一致,Java程序中可以指定界面显示外观。外观包括:Java外观或Metal风格的外观、Windows外观、CDE/Motif外观等。 1、指定外观: UIManager类的setLookAndF

34、eel()方法,该方法的参数是LookAndFeel类的实例或类名。 例:如果用当前平台的外观则可使用: try UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName(); catch(Exception e) UIManager类的getSystemLookAndFeelClassName()返回当前系统使用的外观类名。 将该段代码放入应用程序的main()方法的开头或Java小程序的init()方法的开头即可设置程序的外观。,9.2.6 应用程序外观,2、指定跨平台的外观,即Java外观(Java程序缺省外观):

35、 try UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName(); catch(Exception e) 3、在setLookAndFeel()方法的参数中指定外观类的名字 设置Java外观 UIManager.setLookAndFeel(“javax.swing.plaf.metal.MetalLookAndFeel“); 设置Windows外观 UIManager.setLookAndFeel(“com.sun.java.swing.plaf.windows.WindowsLookAndFeel

36、“); 设置CDE/Motif外观 UIManager.setLookAndFeel(“com.sun.java.swing.plafmotif.MotifLookAndFeel“); 设置Mac OS外观,只能用在Mac OS平台 UIManager.setLookAndFeel(“javax.swing.plaf.mac.MacLookAndFeel“),9.3 绘制图形,9.4.1 在面板中绘图 9.4.2 Graphics类 *9.4.3 Color类 *9.4.4 Font类 9.4.5 绘制几何图形,9.4 绘制图形,1、概述 在Java应用程序和Java Applet中都可以绘图

37、。 可以在框架和小应用程序中使用paint()方法直接绘图,但一般不是把图形绘制在顶层容器中,图形一般绘制在JPanel面板上。 2、绘制图形的一般过程: 先把图形绘制在中间容器JPanel对象上,然后再将中间容器添加到顶层容器中。 具体步骤:先创建一个JPanel类的子类,并且覆盖JPanel类的paintComponent(Graphics g)方法,在覆盖该方法时必须调用超类的paintComponent(Graphics g)方法,从而得到Graphics类对象g,利用g的各种方法可以绘图。,程序9.12 DrawStringDemo.java,下面的例子是在应用程序窗口中显示一个字符

38、串。 import java.awt.*; import javax.swing.*; class MyPanel extends JPanel public void paintComponent(Graphics g) super.paintComponent(g); g.drawString(“Welcome to Java painting.“,50,50); ,程序9.12 DrawStringDemo.java,public class DrawStringDemo extends JFrame MyPanel mp = new MyPanel(); public DrawStri

39、ngDemo() this(“No Title“); public DrawStringDemo(String title) super(title); add(mp, BorderLayout.CENTER); setSize(350,150); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(Stringargs) Frame dstr = new DrawStringDemo(“draw a string“); ,9.4.2 Graphics类,1、概述 G

40、raphics类是一个抽象类,使用它可以在组件上绘制字符串,还可以绘制其他几何图形,如矩形、圆等。要得到Graphics类的对象通常有两种方法: 在JPanel中绘图时需要覆盖paintComponent()方法,该方法的参数就是Graphics类的一个对象。 * 调用组件对象的getGraphics()方法,该方法返回一个Graphics类的对象,使用该对象可以在组件上绘图。 举例:DrawStringDemo1.java,9.4.3 *Color类,通过Color类的构造方法创建颜色对象,Color类的常用的构造方法有: public Color(ing r, int g, int b)

41、该构造方法使用指定整型的红、绿、蓝颜色分量值创建颜色对象,r、g、b的取值范围为0到255。 public Color(float r, float g, float b) 该构造方法使用指定浮点型的红、绿、蓝颜色分量值创建颜色对象,r、g、b的取值范围为0.0到1.0。 public Color(int rgb) 该构造方法使用指定的组合的RGB值创建透明的sRGB颜色, rgb值的16-23位为红色分量的值,8-15位为绿色分量的值,0-7位为蓝色分量的值。,9.4.3 Color类,例如,下面的语句创建了两个颜色对象c1、c2。 Color c1 = new Color(255, 0,

42、0); /创建一个表示红色的颜色对象c1 Color c2 = new Color(255) /创建一个表示蓝色的颜色对象c2 除了可以用构造方法创建颜色对象外,Color类中还定义了13个颜色常量,如表9-2所示:,表9.1 Color类的颜色常量,表9-2 Color类的颜色常量,9.4.3 Color类,对于组件,可以调用其setForeground(Color c) 方法和setBackground(Color c)方法设置组件的前景色和背景色。 对于绘图可以调用绘图对象的setColor(Color c)方法设置绘图对象的颜色。,9.4.4 *Font类,Font类的实例包含了有关字

43、体的相关信息。 字体的属性包含名字、风格和大小。 字体的名字与我们在字处理软件中所用到的字体名是相同的。 字体有很多种,字体种类的数目取决于计算机上所安装的字体数量。 要使用字体需要创建字体对象。,Font类的构造方法,public Font(String name, int style, int size) 创建指定名称、风格和大小的字体对象。 name 为字体名,可以是逻辑字体名。 一般有5种逻辑名,分别为Dialog、DialogInput、Monospaced、Serif、SansSerif 。 若字体名为null,字体名被设为“Default”。 可以指定中文字体名称,如“黑体”等。

44、 style 为字体风格,它需要使用Font类的常量来指定。 Font.PLAIN表示普通字体 Font.BOLD表示粗体 Font.ITALIC表示斜体 Font.BOLD+Font.ITALIC表示粗斜体 size为字号大小。,9.4.4 Font类,下面两行语句创建了两个字体对象font1和font2: Font font1 = new Font(“TimesRoman“ ,Font.PLAIN, 36); Font font2 = new Font(“Courier“ ,Font.BOLD+Font.ITALIC, 24); 可以调用绘图对象或组件的setFont(Font f)方法设

45、置组件和绘图使用的字体,例如: g.setFont(font1); / 设置绘图对象使用的字体 btn.setFont(font2); / 设置按钮文字使用的字体 下面的Java Applet使用了三种字体和三种风格绘制字符串。,程序9.13 FontDemo.java,/ / import java.awt.*; import javax.swing.*; public class FontDemo extends JApplet String s = “This is a Java string.“; public void paint(Graphics g) g.drawString(s

46、,20,30); g.setFont(new Font(“SansSerif“,Font.BOLD,16); g.drawString(s,20,60); g.setFont(new Font(“Monospaced“,Font.ITALIC,16); g.setColor(Color.RED); g.drawString(s,20,90); g.setFont(new Font(“Dialog“,Font.ITALIC+Font.BOLD,16); g.setColor(new Color(0,0,255); g.drawString(s,20,120); ,9.4.5 绘制几何图形,Gra

47、phics类支持两种绘图 一是绘制基本图形,如直线、矩形、椭圆或圆弧等 另一种是绘制图像,主要用于动画制作 在Graphics类中有许多与绘图有关的方法。,1. 绘制直线,绘制直线方法的格式为: public void drawLine(int x1, int y1, int x2, int y2) 参数x1,y1、x2,y2是指直线的起点(x1, y1)和终点(x2, y2)坐标。 通过使用该方法还可以绘制一个像素点,只要起点和终点是一个点即可。,2. 绘制矩形,Java提供了6个绘制矩形的方法。它们可分为空心矩形和填充的矩形。 public void drawRect(int x, int

48、 y, int width, int height) public void fillRect(int x, int y, int width, int height) 上面两个方法是绘制普通的矩形和填充的矩形。x,y为矩形的左上角坐标(x,y),width和height是矩形的宽和高。,2. 绘制矩形,下面的两个方法分别绘制圆角矩形和填充的圆角矩形。 public void drawRoundRect(int x, int y, int width, int height, int aw, int ah) public void fillRoundRect(int x, int y, int

49、 width, int height, int aw, int ah) 前4个参数含义与绘制矩形的方法的参数含义相同,后两个参数的含义是:aw表示圆角上圆弧的水平直径,ah表示圆角上圆弧的垂直直径。,2. 绘制矩形,下面两个方法是绘制三维矩形,前4个参数含义与矩形相同,最后一个参数是布尔值,如果为true表示矩形是凸起的,如果为false表示矩形是下凹的。 public void draw3DRect(int x, int y, int width, int height, boolean raised) public void fill3DRect(int x, int y, int width, int height, boolean raised),程序9.14 RectDemo.java,/ / import java.awt.*; import javax.swing.*; public cla

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1