收藏 分销(赏)

15-java-GUI1(组件、容器、布局管理器).ppt

上传人:w****g 文档编号:1716096 上传时间:2024-05-08 格式:PPT 页数:53 大小:3.62MB
下载 相关 举报
15-java-GUI1(组件、容器、布局管理器).ppt_第1页
第1页 / 共53页
15-java-GUI1(组件、容器、布局管理器).ppt_第2页
第2页 / 共53页
15-java-GUI1(组件、容器、布局管理器).ppt_第3页
第3页 / 共53页
15-java-GUI1(组件、容器、布局管理器).ppt_第4页
第4页 / 共53页
15-java-GUI1(组件、容器、布局管理器).ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、图形(GUI)编程AWT、布局管理器了解 AWT 包及其组件掌握如何创建 GUI 程序掌握 AWT 组件的基本用法掌握如何使用布局管理器构造复杂的布局本章目标本章目标图形编程是用图形的方式,借助菜单,按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令,启动操作,并将系统运行的结果同样以图形方式显示给用户的技术。Java提供了AWT和Swing开发包进行GUI编程AWT包(以 java.awt 开头的)Swing包 (以 javax.swing 开头的)图形编程概述图形编程概述AWT-Abstract Window Toolkit 是Java专门用来设计“GUI”和“绘制2D”的包

2、在开发Applet和图形应用程序时,一般需要用到AWT,AWT给用户提供基本的UI及事件处理结构,支持剪贴板、数据传输和图像操作。根据功能分类:图形(现在一般不用,因为在不同平台显示处观和感觉不一样,需要在不同平台进行测试,现在主要使用JFC-Java的基础类)事件处理图形和图像工具布局管理器AWTAWT包包java.awt java.awt 包中的类体系结构包中的类体系结构ComponentButtonCheckboxContainerChoiceCanvasTextComponentLabelPanelWindowAppletFrameDialogTextAreaTextFieldJava

3、1.2引入称为Swing的新的GUI组件库。Swing包括javax.swing包及其子包。Swing有一个与平台无关的实现,而且具有一个艺术状态的属性集。尽管Swing独立于AWT,但它是依照基本的 AWT类实现的。Swing很好的界定了容器、组件以及用户元素之间的关系。SwingSwing介绍介绍SwingSwing体系结构体系结构ObjectComponentJFrameContainerWindowFrameDialogJDialogJTextJComboBoxJLabelJListJMenuBarJOptionPaneJPanelJScrollBarAbstractButtonJTo

4、ggleButtonJMenuItemJButtonJCheckBoxJRadioButtonJComponentJMenuSwing 组件独立于本地窗口系统。Swing组件除了 AbstractButton 类之外都以 J开头。Swing 组件是基于 AWT 构建。包含 AWT 可视化组件的替代组件,也包含复杂组件-树和表Swing Swing 组件组件设计 GUI 时,都有用于放置可视化组件的主窗口。Container 对象可用于将组件组合在一起。容器中的组件根据特定布局排列。Swing 中的容器有两类:-顶级容器-中间容器 Swing Swing 应用程序的容器层次应用程序的容器层次JF

5、rame:用于框架窗口的类,此窗口带有边框、标题、用于关闭和最小化窗口的图标等。带 GUI 的应用程序通常至少使用一个框架窗口。JDialog:用于对话框的类。JApplet:用于使用 Swing 组件的 Java Applet 的类。顶级容器顶级容器JPanel:最灵活、最常用的中间容器。JScrollPane:与 JPanel 类似,但还可在大的组件或可扩展组件周围提供滚动条。JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。JToolBar:按行或列排列一组组件(通常是按钮)。中间容器中间容器Swing GUISwing GUI框架框架菜单栏菜单栏顶

6、级容器顶级容器GUI组件组件GUI组件组件内容窗格内容窗格import javax.swing.*;public class HelloSwing public static void main(String args)JFrame frame=new JFrame(HelloSwing);JLabel label=new JLabel(你好,Swing);frame.getContentPane().add(label);frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);frame.setSize(300,200);frame.set

7、Visible(true);基本的基本的 Swing Swing 应用程序应用程序导入必要的包,一般还需导入:导入必要的包,一般还需导入:import java.awt.*;import java.awt.event.*;设置一个设置一个顶级容器顶级容器创建一个创建一个Swing组组件件将组件添加到将组件添加到容器内容窗格容器内容窗格实现了在单击实现了在单击“关闭关闭”按钮按钮时,时,可以关闭窗口。可以关闭窗口。如果使用的如果使用的早期版本的平台,则需要通早期版本的平台,则需要通过事件监听器实现过事件监听器实现 JFrameJFrame是放置其他 Swing 组件的顶级容器JFrame 组件用

8、于在 Swing 程序中创建窗体它的构造函数:JFrame()JFrame(String Title)组件必须添加至内容窗格,而不是直接添加至 JFrame 对象,示例:frame.getContentPane().add(b);JPanel 组件是一个中间容器用于将小型的轻量级组件组合在一起JPanel 的缺省布局为 FlowLayoutJPanel 具有下列构造函数:JPanel()JPanel()JPanel(LayoutManager lm)JPanel(LayoutManager lm)JPanelJPanelSwing 的按钮相对于AWT中Button类提供了更多的功能。JButt

9、on类允许用图标、字符串或两者同时构造一个按钮。构造函数如下:JButton()JButton()JButton(Icon icon)JButton(Icon icon):iconicon表示使用的图标表示使用的图标JButton(String text)JButton(String text):texttext表示使用的字符串表示使用的字符串JButton(String text,Icon icon)JButton(String text,Icon icon)JButtonJButtonImageIcon buttonIcon1=new ImageIcon(on.gif);JButton b

10、1=new JButton(First Button,buttonIcon1);b1.setMnemonic(KeyEvent.VK_F);设置键盘设置键盘快捷方式快捷方式创建一个带图标创建一个带图标的的JButtonimport java.awt.*;import javax.swing.*;class PanelDemo extends JFrame public PanelDemo(String title)super(title);Container c=getContentPane();JPanel cpane=new JPanel();JButton ok=new JButton(

11、确定);cpane.add(ok);JButton cancel=new JButton(取消);cpane.add(cancel);c.add(cpane,BorderLayout.SOUTH);JPanelJPanel和和JButtonJButton使用示例使用示例 public static void main(String args)PanelDemo pd=new PanelDemo(JPanel测试测试);pd.setSize(300,200);pd.setVisible(true);它既可以显示文本也可以显示图像构造函数如下:JLabel(Icon icon)JLabel(Ico

12、n icon):iconicon表示使用的图标表示使用的图标JLabel(String text,Icon icon,int align)JLabel(String text,Icon icon,int align):texttext表示使表示使用的字符串用的字符串;icon;icon表示使用的图标表示使用的图标;align;align表示水平对齐表示水平对齐方式,其值可以为:方式,其值可以为:LEFTLEFT、RIGHTRIGHT、CENTERCENTER。JLabelJLabelImageIcon icon=new ImageIcon(Calv.gif);JLabel calv_label

13、=new JLabel(这这是是 Calvin,icon,SwingConstants.LEFT);JtextComponent 为所有 Swing 文本组件的根类文本组件文本组件JTextField JEditorPaneJTextAreaJTextPaneJPasswordFieldJTextField 组件允许输入或编辑单行文本此类的构造函数包括:JTextField()JTextField()JTextField(Document doc,String text,int JTextField(Document doc,String text,int columns)columns)JT

14、extField(int columns)JTextField(int columns)JTextField(String text)JTextField(String text)JTextField(String text,int columns)JTextField(String text,int columns)JTextFieldJTextFieldContainer con=getContentPane();con.setLayout(new FlowLayout();JLabel jl=new JLabel(“文本域文本域”);con.add(jl);JTextField tf=n

15、ew JTextField(20);con.add(tf);JTextArea 组件用于接受来自用户的多行文本它可实现可滚动界面JTextArea 组件可使用下列构造函数创建:JTextArea()JTextArea()JTextArea(int rows,int cols)JTextArea(int rows,int cols)JTextArea(String text)JTextArea(String text)JTextArea(String text,int rows,int cols)JTextArea(String text,int rows,int cols)JTextArea(

16、Document doc)JTextArea(Document doc)JTextArea(Document doc,String text,int rows,int JTextArea(Document doc,String text,int rows,int cols)cols)JTextAreaJTextAreaJLabel jl=new JLabel(“文本区文本区”);con.add(jl);JTextArea ta=new JTextArea(5,10);con.add(ta);为了简化表单填写过程,通常为用户提供多种可供选择的选项,而无需用户写出他们的响应。常用于选择性输入的组件

17、有:复选框复选框单选按钮单选按钮列表框列表框组合框组合框选择性输入选择性输入复选框用于为用户提供一组选项JCheckBox 类具有下列构造函数:JCheckBox()JCheckBox()JCheckBox(Icon icon)JCheckBox(Icon icon)JCheckBox(Icon icon,boolean selected)JCheckBox(Icon icon,boolean selected)JCheckBox(String text)JCheckBox(String text)JCheckBox(String text,boolean selected)JCheckBox

18、(String text,boolean selected)JCheckBox(String text,Icon icon)JCheckBox(String text,Icon icon)JCheckBox(String text,Icon icon,boolean selected)JCheckBox(String text,Icon icon,boolean selected)复选框复选框单选按钮允许用户从多个选项中选择其中一个ButtonGroup 用于在 Swing 中创建组JRadioButton 对象可使用下列构造函数创建:JRadioButton()JRadioButton()J

19、RadioButton(Icon icon)JRadioButton(Icon icon)JRadioButton(Icon,boolean selected)JRadioButton(Icon,boolean selected)JRadioButton(String text)JRadioButton(String text)JRadioButton(String text,boolean selected)JRadioButton(String text,boolean selected)JRadioButton(String text,Icon icon)JRadioButton(Str

20、ing text,Icon icon)JRadioButton(String text,Icon icon,boolean JRadioButton(String text,Icon icon,boolean selected)selected)单选按钮单选按钮import java.awt.*;import javax.swing.*;class Hobby extends JPanel JCheckBox c1=new JCheckBox(阅读,false);JCheckBox c2=new JCheckBox(音乐,false);JCheckBox c3=new JCheckBox(绘画

21、,false);JRadioButton rad1=new JRadioButton(大专);JRadioButton rad2=new JRadioButton(本科);JRadioButton rad3=new JRadioButton(硕士);JLabel jl=new JLabel(您有什么爱好?);JLabel j2=new JLabel(您的最高学历?);JButton exitbtn=new JButton(退出);public Hobby()setLayout(new GridLayout(9,1);add(jl);add(c1);add(c2);add(c3);add(j2)

22、;add(rad1);add(rad2);add(rad3);add(exitbtn);JCheckBoxJCheckBox和和JRadioButtonJRadioButton使用示使用示例例public class Hobbytest extends JFrame Hobbytest()super();getContentPane().add(new Hobby();setSize(300,200);setVisible(true);public static void main(String args)new Hobbytest();在可供选择的选项很多时,可向用户呈现一个列表来供他们选择

23、JList 组件依次排列项目列表,这些项目可以单选或多选JList 类既可显示字符串,也可显示图标JList 不支持双击MouseListener 可用于解决双击问题列表列表public JList():使用空模型构造 JListpublic JList(ListModel dataModel):构造一个列表,用它显示指定模型中的元素。public JList(Object listData):构造一个列表以显示指定数组listData的元素。JList 不支持滚动。要启用滚动,可使用下列代码:JScrollPane myScrollPane=new JScrollPane();JScroll

24、Pane myScrollPane=new JScrollPane();myScrollPane.getViewport().setView(dataList);myScrollPane.getViewport().setView(dataList);JList JList 构造函数构造函数String stars=安安东东尼尼奥奥.班班德德拉拉斯斯,来来昂昂纳纳多多.迪迪卡卡普普尼奥尼奥,桑德拉桑德拉.布洛克布洛克,休休.格兰特格兰特,朱莉亚朱莉亚.罗伯茨罗伯茨;JList moviestars=new JList(stars);文本域和下拉列表的组合在 Swing 中,组合框由 JComb

25、oBox 表示构造函数如下:public JComboBox():public JComboBox():此构造函数使用缺省数据模此构造函数使用缺省数据模型创建型创建 JComboBoxJComboBoxpublic JComboBox(ComboBoxModel asModel):public JComboBox(ComboBoxModel asModel):使用现有使用现有 ComboBoxModel ComboBoxModel 中的项目的组合框中的项目的组合框public JComboBox(Object items):public JComboBox(Object items):包含指定

26、数包含指定数组元素的组合框组元素的组合框组合框组合框String names=弗弗雷雷德德里里克克.福福西西斯斯,约约翰翰.克克里里沙沙姆姆,玛丽玛丽.希金斯希金斯.克拉克克拉克,帕特丽夏帕特丽夏.康威尔康威尔;JComboBox authors=new JComboBox(names);Graphics对象记录针对绘制图形和文本的一系列设置,比如设置的图标或当前颜色、字体等。Java中,所有绘制都必须通过一个图形对象。可以用Graphics对象绘制的图形是原始图形。对于这些图形,不能使用实数坐标不能绘制虚线或宽度不定的线条不能使用纹理或渐变颜色填充形体 为了解决图形对象的局限性,在Java1

27、.1以后的版本中引入了Java 2DGraphicsGraphicsJava2D 包括一个 Graphics2D 类,此类扩展了 Graphics 类,所有图形方法都可以配合 Graphics2D 对象使用Java 2D 图形的重要功能:颜色和图案:图形可以用渐变颜色和填充图案着色。透明绘制:图形的不透明度通过 透明值控制。本地字体:平台上的所有本地字体都可用于绘制文本。画笔的显式控制:可以使用线条的粗细、虚线图案以及段连接样式。坐标系的转换:可以使用平移、缩放、旋转和剪切Graphics2D Graphics2D Font 类只有一个构造函数:public Font(String name,

28、int style,int pointsize)参数参数namename表示字体的名称。表示字体的名称。参数参数stylestyle表示样式可以是表示样式可以是Font.PLAINFont.PLAIN、Font.BOLD Font.BOLD 或或 Font.ITALIC Font.ITALIC 参数参数pointsizepointsize表示字体的点数,即以磅为单位的字体大表示字体的点数,即以磅为单位的字体大小,可以是小,可以是 1111、1212、1414、16 16 等。等。Font Font 类类public void paint(Graphics g).g.setFont(new Fo

29、nt(Helvetica,Font.ITALIC,18);g.drawString(Draw where ever you want,100,10);.通过使用 getFontMetrics()方法,而不是new运算符(因为它是一个抽象类),可以创建该类的对象。这个对象包含与字体相关的大量信息,包括字符的高度、按像素数计算的字符串宽度等。常用方法如下:int stringWidth(String s):返回字符串宽度 int charWidth(char c):返回字符c的宽度 int getHeight():返回字体的高度 FontMetrics FontMetrics 类类有有时时,需需要

30、要测测量量用用特特殊殊字字体体显显示示的的一一个个字字符符串串,可以使用可以使用FontMetrics 类类使用字体示例使用字体示例1 1import java.awt.*;import javax.swing.*;class FontsPanel extends JPanel public void paintComponent(Graphics g)String quote=Happiness is an attitude.;Font f=new Font(Georgia,Font.ITALIC,16);g.setFont(f);g.drawString(quote,20,20);该包中包

31、含该包中包含JPanel和和JFrame组件组件public class FontsDemo extends JFrame public FontsDemo()setTitle(test);setSize(300,200);Container contentPane=getContentPane();contentPane.add(new FontsPanel();public static void main(String args)FontsDemo frame=new FontsDemo();frame.show();列出当前平台上所有可用字体列出当前平台上所有可用字体import ja

32、va.awt.*;public class ListFonts public static void main(String args)GraphicsEnvironment env=GraphicsEnvironment.getLocalGraphicsEnvironment();String fontNames=env.getAvailableFontFamilyNames();System.out.println(可用字体:可用字体:);for(int i=0;ifontNames.length;i+)System.out.println(+fontNamesi);java.awt.Co

33、lor 类提供了13个可用作标准颜色的常量:black(黑色)green(绿色)red(红色)blue(蓝色)lightGray(浅灰色)white(白色)cyan(蓝绿色)magenta(洋红色)yellow(黄色)darkGray(深灰色)orange(橙色)gray(灰色)pink(粉红色)颜色颜色 Color a=new Color(0.907F,2F,0F);Color b=new Color(255,255,0);ColorColor类的构造函数类的构造函数Color类的构造函数如下:类的构造函数如下:-Color(int red,int green,int blue):使使用用三

34、三个个分分别别代代表表红红、绿绿、蓝蓝的的整整数数来来表表示示它它们们混混合的颜色。这些值必须在合的颜色。这些值必须在0 0到到255255之间。之间。-Color(float red,float green,float blue):用三个浮点数指定红、绿、蓝的相对混合。:用三个浮点数指定红、绿、蓝的相对混合。如果要修改或设置组件的颜色,可以使用下列几种方法:void setColor(Color newColor):设置当前绘制的颜色 void setForeground(Color):设置前景色void setBackground(Color):设置背景色 设置颜色方法设置颜色方法使用颜色

35、示例使用颜色示例import java.awt.*;import javax.swing.*;class ColorsPanel extends JPanel public void paintComponent(Graphics g)Font f=new Font(Georgia,Font.ITALIC,16);g.setFont(f);g.setColor(Color.red);g.drawString(Hello,75,100);g.setColor(new Color(0,128,128);g.drawString(World,75,125);用户界面上的组件可以按不同方式排列。Jav

36、a使用布局管理器来管理这些排列方式。每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要用到布局管理器。AWT提供一组用来进行布局管理的类,称为布局管理器或布局。所有布局都实现 LayoutManager接口。布局管理器布局管理器Java中的布局类型包括以下几种:FlowLayout(流式布局)BorderLayout(方位布局)GridLayout(网格布局)GridBagLayout(网袋布局)CardLayout(卡片布局)布局类型布局类型每个布局管理器都有自己特定的用途。要按行和列显示几个同样大小的组件,GridLayout 会比较合要在尽可能大的空间里显示一个组件,就要选择 Bo

37、rderLayout 或 GridBagLayout 布局类型的选用布局类型的选用每个容器(Container对象)都有一个与它相关的缺省的布局管理器。-Applet 的缺省布局是 FlowLayout 在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。可以通过setLayout()方法为容器设置新的布局。如何设置布局如何设置布局FlowLayoutFlowLayoutvApplet和面板的缺省布局和面板的缺省布局v组件从左上角开始按从左组件从左上角开始按从左到右、从上到下的方式排列到右、从上到下的方式排列FlowLayout的构造函数有:的构造函数有:-FlowLayout(

38、):生成一个默认的流式布局生成一个默认的流式布局-FlowLayout(int alignment):可以设定每一行组可以设定每一行组件的对齐方式件的对齐方式-FlowLayout(int alignment,int horz,int vert):可以可以设定组件间的水平和垂直距离设定组件间的水平和垂直距离FlowLayout mylayout=new FlowLayout();FlowLayout exLayout=new FlowLayout(FlowLayout.RIGHT);setLayout(exlayout);/为容器设置新布局为容器设置新布局 下面是BorderLayout所定义

39、的构造函数:-BorderLayout():生成默认的边界布局-BorderLayout(int horz,int vert):可以设定组件间的水平和垂直距离 BorderLayout 2-1BorderLayout 2-1v窗口、框架和对话窗口、框架和对话框等的缺省布局框等的缺省布局v组件可被置于容器组件可被置于容器的北、南、东、西或的北、南、东、西或中间位置中间位置 BorderLayout 类定义了几个常量值以指定相应区域:BorderLayout.NORTH BorderLayout.NORTH 对应容器的顶部对应容器的顶部BorderLayout.EAST BorderLayout.

40、EAST 对应容器的右部对应容器的右部BorderLayout.SOUTH BorderLayout.SOUTH 对应容器的底部对应容器的底部BorderLayout.WEST BorderLayout.WEST 对应容器的左部对应容器的左部BorderLayout.CENTER BorderLayout.CENTER 对应容器的中部对应容器的中部加入组件方法:加入组件方法:void add(Component Obj,int region)void add(Component Obj,int region);BorderLayout 2-2BorderLayout 2-2.setLayout

41、(new BorderLayout();Button btnEast=new Button(东东);Button btnWest=new Button(西西);Button btnNorth=new Button(北北);Button btnSouth=new Button(南南);Button btnCenter=new Button(中中);add(btnEast,BorderLayout.EAST);add(btnWest,BorderLayout.WEST);add(btnNorth,BorderLayout.NORTH);add(btnSouth,BorderLayout.SOUTH

42、);add(btnCenter,BorderLayout.CENTER);.GridLayoutGridLayoutv用于将容器区域划用于将容器区域划分为一个矩形网格分为一个矩形网格v组件按行和列排列组件按行和列排列GridLayout的构造函数如下所示:的构造函数如下所示:-GridLayout():生成一个单列的网格布局生成一个单列的网格布局 -GridLayout(int row,int col):生生成成一一个个设设定定行行数数和和列列数的网格布局数的网格布局 -GridLayout(int row,int col,int horz,int vert):可可以以设设置组件之间的水平和垂

43、直间隔置组件之间的水平和垂直间隔.Button btn;/声明按钮数组声明按钮数组 String str=1,2,3,4,5,6,7,8,9;setLayout(new GridLayout(3,3);btn=new Buttonstr.length;/创建按钮数组创建按钮数组 for(int i=0;istr.length;i+)btni=new Button(stri);add(btni);GridBagLayoutGridBagLayoutv组件大小不必相同组件大小不必相同v组件按行和列排列组件按行和列排列v放置顺序不一定为从左至放置顺序不一定为从左至右和由上至下右和由上至下通过使用以下

44、语法容器可获得通过使用以下语法容器可获得 GridBagLayoutGridBagLayout:GridBagLayout gb=new GridBagLayout();GridBagLayout gb=new GridBagLayout();ContainerName.setLayout(gb);ContainerName.setLayout(gb);要使用此布局,必须提供各组件的大小和布局等信要使用此布局,必须提供各组件的大小和布局等信息。息。GridBagConstraints GridBagConstraints 类中包含类中包含 GridBagLayout GridBagLayout

45、 类类用来定位及调整组件大小所需的全部信息。用来定位及调整组件大小所需的全部信息。成员变量列表:gridx,gridy:指定组件放置于哪个单元中gridwidth,gridheight:指定组件将占用多少行和多少列weightx,weighty:指定在一个 GridBagLayout 中应如何分配空间,这些变量的缺省值为 0ipadx,ipady:指定组件的最小高度和宽度GridBagConstraints GridBagConstraints 类类 2-12-1成员变量列表:fill:指定在组件小于显示显示区的情况下,组件如何填充此单元,共有4个可选值。GridBagConstraints.

46、NONE:不变(缺省值)GridBagConstraints.HORIZONTAL:水平占满,垂直不变GridBagConstraints.VERTICAL:垂直伸展,水平不变GridBagConstraints.BOTH:全部占满anchor:指定将组件放置在单元中的位置,共有9个可选值。缺省值为:GridBagConstraints.CENTER GridBagConstraints GridBagConstraints 类类2-22-2可存储几个不同的布局。每个布局就像是一个卡片组中的一张卡片。在一个给定的时间总会有一张卡片在顶层。卡片通常为一个 Panel 对象。每当需要许多面板切换,

47、而每个面板需要显示为不同布局时,可以使用卡片布局。CardLayoutCardLayout容器指可以存放组件的区域,两种常用容器类:框架(JFrame)和面板(JPanel)。框架是一个单独的窗口,而面板只是包含在窗口中的一个区域。图形编程中支持下列类型的组件:标签、文本域、文本区、按钮、复选框、列表框等。Swing 中的容器有两类:顶级容器、中间容器通过 Swing标签既可以显示文本,也可以显示图像布局管理器类提供控制 GUI 组件物理布局的一种方式。以下是几种不同类型的布局:FlowLayoutFlowLayoutBorderLayoutBorderLayoutCardLayoutCardLayoutGridLayoutGridLayoutGridBagLayoutGridBagLayout布局可通过 setLayout()方法进行设置。总结总结1 1FlowLayout 是 Applet 和 面板的缺省布局管理器。组件从左上角到右下角进行排列。BorderLayout 按北、南、东、西、中的不同区域划分将组件排列于容器中。GridLayout 将组件按行和列排列。所有组件大小相同。GridBagLayout 能将组件放置在最精确的位置。各组件的大小可以不同。CardLayout可存储几个不同的布局管理器 总结总结2 2

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服