收藏 分销(赏)

Java图形界面编程PPT学习课件.ppt

上传人:快乐****生活 文档编号:10509179 上传时间:2025-05-31 格式:PPT 页数:112 大小:1.74MB
下载 相关 举报
Java图形界面编程PPT学习课件.ppt_第1页
第1页 / 共112页
Java图形界面编程PPT学习课件.ppt_第2页
第2页 / 共112页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第一级,第二级,*,单击此处编辑母版标题样式,第一级,第二级,*,Java,图形界面编程,第四章,2,4.1,本章任务,掌握,Java,图形界面设计的基本原理;,理解,java.awt,和,javax.swing,软件包的类层次结构;,掌握利用,Java,的,GUI,组件来创建按钮、标签、列表、面板等组件;,掌握,Java,图形界面的事件模型;,掌握利用,Java,布局管理器来对,Java,图形界面进行布局管理。,3,4.2,基础知识,4,基本的,AWT,组件,图形用户界面(,GUI,),可以通过键盘或鼠标来响应用户的操作。,抽象窗口工具包(,AWT,),是一组,Java,类,此组,Java,类允许创建图形用户界面(,GUI,)。,AWT,提供用于创建生动而高效的,GUI,的各种组件,。,5,java.awt,包中的类体系结构,C,omponent,Button,Checkbox,Container,Choice,Canvas,TextComponent,Label,Panel,Window,Applet,Frame,Dialog,TextArea,TextField,6,容器,可以存放组件的区域,,可在容器上进行绘制和着色,java.awt,包中的,Container,类可直接或间接派生出两个常用容器:,框架(,Frame,类)和面板(,Panel,类)。,框架是一个带有边框的独立的窗口。,面板是包含在窗口中的一个不带边框的区域。,7,容器 框架,框架是独立于,Applet,和浏览器的一个窗口。,可以通过以下任一构造函数来创建:,Frame(),:,创建一个不含标题的标准窗口,Frame(String Title),:,创建一个含有标题的窗口,这个标题是由参数,title,指定的。,当一个,Frame,窗口被创建以后,需要调用,setSize(),方法来设置窗口的大小,并调用,setVisible(),来显示窗口。,8,容器-面板,面板不是一个单独的窗口,它只是包含在窗口中的一个区域。,面板是可以将许多组件组合起来的一种容器。,最简单的创建面板的方式就是通过面板的构造函数,Panel(),来进行。,必须将面板添加到窗体中。,9,使用容器示例,import java.awt.*;,class PanelTest extends Panel,public static void main(String args),PanelTest p=new PanelTest();,Frame f=new Frame(,正在测试面板!,);,f.add(p);,f.setSize(300,200);,f.setVisible(true);,使用,GUI,组件必须导入该包,将面板添加到,框架窗体中,10,AWT,组件,组件指可以放置在用户界面上的任何东西,可以将组件设置为可见或重新调整其大小。,AWT,支持的组件:标签、文本域、文本区、按钮、复选框、选择框等。,高级组件包括滚动条、滚动窗格和对话框。,向窗口加入一个组件:首先生成所需组件的实例,然后调用,add(),方法,此方法是在,Container,类中定义的。,11,不同组件,标签,文本域,复选框,单选按钮,文本区,按钮,12,标签,可以通过以下任一构造函数来创建:,Label(),:,新建一个空标签,Label(String labeltext),:,新建一个包含给定文本的标签,Label(String labeltext,int alignment),:,新建一个包含给定对齐方式的标签,对齐方式可以为,Label.LEFT、Label.RIGHT,或,Label.CENTER,通常用来指明项目的用途,标签不可以被用户编辑,13,文本域,可以通过以下任一构造函数来创建:,TextField(),:,新建一个文本,域,TextField(int columns),:,新建一个包含给定列数的文本,域,TextField(String s),:,新建一个包含给定字符串的文本,域,TextField(String s,int columns),:,新建一个包含给定字符串和列数的文本,域,一种用来输入文本的,GUI,组件,只能接受一行输入,14,标签和文本域使用示例,import java.awt.*;,class TextLabelDemo extends Frame,Label lblName=new Label(,“,名称,:,”,);,TextField txtName=new TextField(20);,public TextLabelDemo(String title),super(title);,setLayout(new FlowLayout();,add(lblName);,add(txtName);,public static void main(String args),TextLabelDemo t=new TextLabelDemo(,正在测试组件!,);,t.setSize(300,200);t.show();,新建一个标签,新建一个文本域,添加到窗口,15,文本区,可以通过以下构造函数来创建:,TextArea(),:,新建一个,TextArea,TextArea(int rows,int cols),:,新建一个包含给定行数和列数的,TextArea,TextArea(String text,int rows,int cols),:,新建一个包含给定字符串、行数和列数的,TextArea,要接受输入多行文本时使用,可以包括滚动条,.,TextArea txtComment=new TextArea();,add(txtComment);,.,16,按钮,可以使用以下任一构造函数来创建按钮:,Button(),:,新建一个空的按钮,Button(String text),:,新建一个包含给定字符串的按钮,按钮是任何,GUI,都,不可或缺的组件,用来捕捉用户操作的最为简便的方式,.,Button btnOk=new Button(,确定,!,);,Button btnCancel=new Button(,取消,!,);,add(btnOk);,add(btnCancel);,.,17,复选框,可以使用以下任一构造函数来创建复选框:,-,Checkbox(),:,创建一个空的复选框,且未被选中,-,Checkbox(String text),:,创建一个用给定字符串作为标签的复选框,且未被选中,-,Checkbox(String text,Boolean on),:,创建一个标签由参数,text,指定的复选框,允许通过参数,on,设定复选框的初始状态。,用于多选项的用户输入,用户可以通过单击复选框来选定或取消选定某选项。,18,单选按钮,可以通过复选框组生成一系列互斥的复选框,实现单选按钮功能。,在一组单选按钮中只能选择一个按钮。,首先创建一个,CheckboxGroup,对象。,CheckboxGroup cg=new CheckboxGroup();,然后再创建各单选按钮。,Checkbox male=Checkbox(,男,cg,true);,Checkbox female=Checkbox(,女,cg,false);,19,复选框和单选按钮使用示例,import java.awt.*;,class Qualification extends Frame,Checkbox t1=new Checkbox(Visual Basic);,Checkbox t2=new Checkbox(Visual C+);,Checkbox t3=new Checkbox(Java);,CheckboxGroup cg=new CheckboxGroup();,Checkbox r1=new Checkbox(,专科,cg,false);,Checkbox r2=new Checkbox(,本科,cg,false);,Checkbox r3=new Checkbox(,硕士,cg,false);,Checkbox r4=new Checkbox(,博士,cg,false);,Label lb1=new Label(,您的学历为:,);,Label lb2=new Label(,您精通的语言为:,);,新建复选框,新建一个复选框组,添加,单选按钮,public Qualification(String s),super(s);setLayout(new GridLayout(10,1);,add(lb1);add(r1);add(r2);add(r3);add(r4);,add(lb2);add(t1);add(t2);add(t3);,public static void main(String args),Qualification q=new Qualification(,学识!,);,q.setSize(400,250);,q.show();,将单选按钮添加到窗体,将复选框添加到窗体,20,选择框,用,Choice,类可以创建一个选择框,Choice moviestars=new Choice();,通过,addItem(),方法可以添加项目,moviestars.addItem(,安东尼奥.班德拉斯);,moviestars.addItem(,莱昂纳多.迪卡普尼奥);,moviestars.addItem(,桑德.布洛克);,moviestars.addItem(,休.葛兰特);,moviestars.addItem(,朱莉亚.罗萡茨);,用来向用户显示一个选择列表,21,Java,布局管理器,用户界面上的组件可以按不同方式排列。,Java,使用布局管理器来管理这些排列方式,。,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要用到布局管理器。,AWT,提供一组用来进行布局管理的类,称为布局管理器或布局。所有布局都实现,LayoutManager,接口。,22,布局类型,Java,中的,布局类型包括以下几种:,FlowLayout(,流式布局),BorderLayout,(边界布局),GridLayout,(网格布局),GridBagLayout,(网格包布局),CardLayout,(卡片布局),23,布局类型的选用,每个布局管理器都有自己特定的用途。,要按行和列显示几个同样大小的组件,,GridLayout,会比较合,要在尽可能大的空间里显示一个组件,就要选择,BorderLayout,或,GridBagLayout,24,如何设置布局,每个容器(,Container,对象)都有一个与它相关的缺省的布局管理器。,-Applet,的缺省布局是,FlowLayout,在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。,可以通过,setLayout(),方法为容器设置新的布局。,25,FlowLayout,FlowLayout,的构造函数有:,FlowLayout(),:,生成一个默认的流式布局,FlowLayout(int alignment),:,可以设定每一行组件的对齐方式,FlowLayout(int alignment,int horz,int vert),:,可以设定组件间的水平和垂直距离,Applet,和面板的缺省布局,组件从左上角开始按从左到右、从上到下的方式排列,FlowLayout mylayout=new FlowLayout();,FlowLayout exLayout=new,FlowLayout(FlowLayout.RIGHT);,setLayout(exlayout);/,为容器设置新布局,26,BorderLayout 2-1,下面是,BorderLayout,所定义的构造函数:,-,BorderLayout(),:,生成默认的边界布局,-,BorderLayout(int horz,int vert),:,可以设定组件间的水平和垂直距离,窗口,、,框架和对话框等的缺省布局,组件可被置于容器的北、南、东、西或中间位置,27,BorderLayout 2-2,BorderLayout,类定义了几个常量值以指定相应区域:,BorderLayout.NORTH,对应容器的顶部,BorderLayout.EAST,对应容器的右部,BorderLayout.SOUTH,对应容器的底部,BorderLayout.WEST,对应容器的左部,BorderLayout.CENTER,对应容器的中部,加入组件方法:,void add(Component Obj,int region);,.,setLayout(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);,add(btnCenter,BorderLayout.CENTER);,.,28,GridLayout,GridLayout,的构造函数如下所示:,-,GridLayout(),:,生成一个单列的网格布局,-,GridLayout(int row,int col),:,生成一个设定行数和列数的网格布局,-,GridLayout(int row,int col,int horz,int vert),:,可以设置组件之间的水平和垂直间隔,用于将容器区域划分为一个矩形网格,组件按行和列排列,.,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);,29,GridBagLayout,通过使用以下语法容器可获得,GridBagLayout:,GridBagLayout gb=new GridBagLayout();,ContainerName.setLayout(gb);,要使用此布局,必须提供各组件的大小和布局等信息。,GridBagConstraints,类中包含,GridBagLayout,类用来定位及调整组件大小所需的全部信息。,组件大小不必相同,组件按行和列排列,放置顺序不一定为从左至右和由上至下,30,GridBagConstraints,类 2-1,成员变量列表:,gridx,gridy,:,指定组件放置于哪个单元中,gridwidth,gridheight,:,指定组件将占用多少行和多少列,weightx,weighty,:,指定在一个,GridBagLayout,中应如何分配空间,这些变量的缺省值为 0,ipadx,ipady,:,指定组件的最小高度和宽度,31,成员变量列表:,fill,:,指定在单元大于组件的情况下,,,组件如何填充此单元,共有4可选值。缺省值为:,GridBagConstraints.NONE,anchor,:,指定将组件放置在单元中的位置,共有9个可选值。缺省值为:,GridBagConstraints.CENTER,GridBagConstraints,类2-2,32,CardLayout,可存储几个不同的布局。,每个布局就像是一个卡片组中的一张卡片。,在一个给定的时间总会有一张卡片在顶层。,卡片通常为一个,Panel,对象。,每当需要许多面板切换,而每个面板需要显示为不同布局时,可以使用卡片布局。,33,Java,事件模型,Java,最新的事件处理方法是基于授权事件模型,事件源生成事件并将其发送至一个或多个监听器,监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。,34,事件,在,授权事件模型,中,事件是一个描述事件源状态改变的对象。,通过鼠标、键盘与,GUI,界面直接或间接交互都会生成事件。,如:按下一个按钮、通过键盘输入一个字符、选择列表框中的一项、点击一下鼠标等。,35,事件源,事件源是一个生成事件的对象,一个事件源可能会生成不同类型的事件,事件源提供了一组方法,用于为事件注册一个或多个监听器。,每种事件的类型都有其自己的注册方法。一般形式为:,public void addListener(TypeListener e),36,AWT,采取的事件控制过程,监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”,事件源是一个对象,它可以注册一个或多个监听器对象,并向其发送事件对象。,事件源将在发生事件时向所有注册的监听器发送事件对象。,监听器对象使用事件对象中的信息来确定它们对事件的响应。,37,按钮单击事件示例,public class MyEventTest extends Panel,Button myButton=new Button(,蓝色,);,.,/,创建面板或其他,GUI,组件,MyListener myAction=new MyListener();,MyButton.addActionListener(myAction);,private class MyListener implements ActionListener,public MyListener(),./,初始化,public void actionPerformed(ActionEvent event),./,需要为事件进行的操作,实现了,ActionListener,接口的监听器,实现了,actionPerformed,方法,以便根据参数,ActionEvent,对象的信息对事件做出响应,为按钮事件,注册监听器,38,事件体系结构,FocusEvent,AWTEvent,ActionEvent,AdjustmentEvent,ComponentEvent,TextEvent,ItemEvent,ContainerEvent,InputEvent,WindowEvent,PaintEvent,KeyEvent,MouseEvent,EventObject,39,AWT,事件类型 2-1,事件类,说明,事件源,ActionEvent,通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件。,Button、List、MenuItem、TextField,AdjustmentEvent,操纵滚动条时会生成此事件。,Scrollbar,ComponentEvent,当一个组件移动、隐藏、调整大小或成为可见时会生成此事件。,Component,ItemEvent,单击复选框或列表项时,或者当一个选择框或一个可选菜单的项被选择或取消时生成此事件。,Checkbox、CheckboxMenuItem、Choice、List,FocusEvent,组件获得或失去键盘焦点时会生成此事件。,Component,40,AWT,事件类型 2-2,事件类,说明,事件源,KeyEvent,接收到键盘输入时会生成此事件。,Component,MouseEvent,拖动、移动、单击、按下或释放鼠标或在鼠标进入或退出一个组件时,会生成此事件。,Component,ContainerEvent,将组件添加至容器或从中删除时会生成此事件。,Container,TextEvent,在文本区或文本域的文本改变时会生成此事件。,TextField、TextArea,WindowEvent,当一个窗口激活、关闭、,失效、恢复、最小化、打开或退出时会生成此事件。,Window,41,监听器接口,监听器通过实现,java.awt.event,包中定义的一个或多个接口来创建。,在发生事件时,事件源将调用监听器定义的相应方法。,有兴趣接收事件的任何监听器类都必须实现监听器接口。,42,监听器接口列表 2-1,事件监听器,方法,ActionListener,actionPerformed,AdjustmentListener,adjustmentValueChanged,ComponentListener,componentResized,componentMoved,componentShown,componentHidden,ContainerListener,componentAdded,componentRemoved,FocusListener,focusLost,、,focusGained,ItemListener,itemStateChanged,43,监听器接口列表 2-2,事件监听器,方法,KeyListener,keyPressed,、,keyReleased,keyTyped,MouseListener,mouseClicked,、,mouseEntered,mouseExited,、,mousePressed,mouseReleased,MouseMotionListener,mouseDragged,、,mouseMoved,TextListener,textChanged,WindowListener,windowActivated,、,windowDeactivated,windowClosed,、,windowClosing,windowIconified,、,windowDeiconified,windowOpened,44,适配器类,适配器类,事件监听器接口,ComponentAdapter,ComponentListener,ContainerAdapter,ContainerListener,FocusAdapter,FocusListener,KeyAdapter,KeyListener,MouseAdapter,MouseListener,MouseMotionAdapter,MouseMotionListener,WindowAdapter,WindowListener,为了使事件处理变得简单,,Java,为具有多个方法的监听器接口提供适配器类。适配器类实现并提供了一个事件监听器接口中的所有的方法,但这些方法都是空方法。,private class MyMouseAdapter extends MouseAdapter,private Color bgColor;,public MyMouseAdapter(Color c)bgColor=c;,public void mouseClicked(MouseEvent mevent),setBackground(bgColor);repaint();,45,事件源、监听器和监听器接口,事件源描述事件对象中事件的性质。,每个事件源都被映射至一个或多个事件监听器,发生事件时需要调用这些事件监听器。,事件源随后通过将事件对象传递至监听器接口类的方法,将事件信息发送到监听器接口。,监听器分析事件对象找出事件信息,,以便给出响应,。,46,任何,GUI,对象的获得或失去焦点都被视为焦点事件,并且事件源必须向事件监听器通知事件对象已失去或已获得焦点。,焦点监听器需要实现两个方法:,focusGained,和,focusLost。,要进行错误检查或数据校验时,对焦点的捕捉就显得尤其重要。,焦点事件,47,焦点事件示例,public void focusLost(FocusEvent event),if(event.getComponent()=ccField&,!event.isTemporary(),if(!checkFormat(ccField.getText(),ccField.requestFocus();,实现了当捕捉到失去,焦点事件时如何响应,检验失去焦点的组件中的文本格式是否正确,如果格式不正确,将焦点移回到该组件,48,窗口事件,当一个窗口被激活、禁止、关闭、正在关闭、,最小化、恢复、打开时将生成窗口事件。,需要实现的方法如下:,windowActivated、windowClosed,windowClosing、windowDeactivated,windowDeiconified、windowIconified,windowOpened,49,窗口事件示例,class MyFrame extends Frame boolean w;public MyFrame()w=false;setTitle(,测试适配器类,);setSize(300,200);MyPanel panel=new MyPanel();add(panel);,addWindowListener(new MyWindowAdapter();,private class MyWindowAdapter extends WindowAdapter,public void windowClosing(WindowEvent wevent),if(w)dispose();,else System.exit(0);,实现了,w,indowClosing,方法,以响应窗口关闭时的事件,import java.awt.*;,import java.awt.event.*;,public class MyAdapterDemo,public static void main(String args),MyFrame frm=new MyFrame();,frm.show();,50,在按下或释放键盘上的一个键时,将生成键盘事件。,keyEvent,类包含用来表示按下或点击的键的常量。,生成,keyEvent,时将调用,keyListener。,如果程序需要处理特殊的键,如方向键,需要通过调用,keyPressed(),方法来处理。,键盘事件,public void keypressed(keyEvent k),int keyCode=k.getKeyCode();,if(,keyCode=k.VK_RIGHT&k.isShiftDown(),),.,检测用户是否按下了,Shift+,右箭头键,51,键盘事件示例,class MyPanel extends Panel,public MyPanel(),TextField tField=new TextField(20);,add(tField);,MyKeyAdapter bAction=new MyKeyAdapter();,tField.addKeyListener(bAction);,private class MyKeyAdapter extends KeyAdapter,public void keyPressed(KeyEvent kevent),setBackground(Color.blue);repaint();,public void keyReleased(KeyEvent kevent),setBackground(Color.red);repaint();,public void keyTyped(KeyEvent kevent),if(kevent.getKeyChar()=x)System.exit(0);,按下键时背景变为兰色,释放键时背景变为红色,输入字符,x,时退出程序,52,鼠标事件,任何时候移动、单击、按下或释放鼠标,都会生成鼠标事件。,鼠标事件有两种监听器:,MouseListener,和,MouseMotionListener。,需要实现的方法如下:,mouseClicked、mouseEntered、mouseExited,mousePressed、mouseReleased,mouseDragged、mouseMoved,53,public void mouseClicked(MouseEvent m),int x=m.getX();,int y=m.getY();,int clickCount=m.getClickCount();,if(clickCount=2),Graphics g=getGraphics();,g.drawString(,鼠标双击!,x,y);,g.dispose();,鼠标事件示例,获得点击鼠标时鼠标指针的,x,及,y,坐标,确定单击和双击,54,多个监听器,所有,AWT,事件源均支持监听器的多点传送模型。,可以将同一事件发送到多个监听器对象。,需要向一个事件源添加多个监听器,以便使所有注册的监听器都能够对事件源生成的事件作出响应,。,55,4.3,案例,4,及案例分析,具体案例分析见本书,56,4.4,扩展知识,57,Swing,编程,Java1.2,引入称为,Swing,的新的,GUI,组件库。,Swing,包括,javax.swing,包及其子包。,Swing,有一个与平台无关的实现,而且具有一个艺术状态的属性集,。,尽管,Swing,独立于,AWT,,,但它是依照基本的,AWT,类实现的。,58,MVC,设计模式,59,Swing,结构,Object,Component,JFrame,Container,Window,Frame,Dialog,JDialog,JText,JComboBox,JLabel,JList,JMenuBar,JOptionPane,JPanel,JScrollBar,AbstractButton,JToggleButton,JMenuItem,JButton,JCheckBox,JRadioButton,JComponent,JMenu,60,Swing,组件,Swing,组件独立于本地窗口系统。,Swing,组件除了,AbstractButton,类之外都以,J,开头。,Swing,组件是基于,AWT,构建。,包含,AWT,可视化组件的替代组件,也包含复杂组件-树和表,J,61,Swing,应用程序的容器层次,设计,GUI,时,都有用于放置可视化组件的主窗口。,Container,对象可用于将组件组合在一起。,容器中的组件根据特定布局排列。,Swing,中的容器有两类:,-顶级容器,-中间容器,62,顶级容器,JFrame,:,用于框架窗口的类,此窗口带有边框、标题、用于关闭和最小化窗口的图标等。带,GUI,的应用程序通常至少使用一个框架窗口,。,JDialog,:,用于对话框的类。,JApplet,:,用于使用,Swing,组件的,Java Applet,的类,。,63,中间容器,JPanel,:,最灵活、最常用的中间容器。,JScrollPane,:,与,JPanel,类似,但还可在大的组件或可扩展组件周围提供滚动条。,JTabbedPane,:,包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。,JToolBar,:,按行或列排列一组组件(通常是按钮)。,64,Swing GUI,框架,你好,世界,菜单栏,顶级容器,GUI,组件,GUI,组件,内容窗格,65,基本的,Swing,应用程序,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.setVisible(true);,导入必要的包,一般还需导入:,import java.awt.*;,import java.awt.event.*;,设置一个,顶级容器,创建一个,Swing,组件,将组件添加到,容器内容窗格,实现了在单击,“,关闭,”,按钮时,,可以关闭窗口。,如果使用的,早期版本的平台,则需要通过事件监听器实现,66,JFrame,是,放置其他,Swing,组件的顶级容器,JFrame,组件用于在,Swing,程序中创建窗体,它的构造函数:,JFrame(),JFrame(String Title),组件必须添加至内容窗格,而不是直接添加至,JFrame,对象,示例:,frame.getContentPane().add(b);,67,JPanel,JPanel,组件是一个中间容器,用于将小型的轻量级组件组合在一起,JPanel,的缺省布局为,FlowLayout,JPanel,具有下列构造函数:,JPanel(),JPanel(LayoutManager lm),68,JButton,Swing,的按钮相对于,AWT,中,Button,类提供了更多的功能。,JButton,类允许用图标、字符串或两者同时构造一个按钮。,构造函数如下:,JButton(),JButton(Icon icon),:icon,表示使用的图标,JButton(String text),:text,表示使用的字符串,JButton(String text,Icon icon),ImageIcon buttonIcon1=new ImageIcon(on.gif);,JButton b1=new JButton(First Button,buttonIcon1);,b1.setMnemonic(KeyEvent.VK_F);,设置键盘,快捷方式,创建一个带图标的,JButton,69,JPanel,和,JButton,使用示例,import 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(,确定,);,cpane.add(ok);,JButton cancel=new JButton(,取消,);,cpane.add(cancel);,c.add(cpane,BorderLayout.SOUTH);,public static void main(String args),PanelDemo pd=new PanelDemo(JPanel,测试,);,pd.setSize(300,200);,pd.setVisible(true);,70,JLabel,它既可以显示文本也可以显示图像,构造函数如下:,JLabel(Icon icon),:icon,表示使用的图标,JLabel(String text,Icon icon,int align),:text,表示使用的字符串;,icon,表示使用的图标;,align,表示水平对齐方式,其值可以为:,LEFT、RIGHT、CENTER。,ImageIcon icon=new ImageIcon(Calv.gif);,JLabel calv_label=new JLabel(,这是,Calvin,icon,SwingConstants.LEFT);,71,文本组件,JtextComponent,为所有,Swing,文本组件的根类,JText
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服