图形界面设计1.pptx
《图形界面设计1.pptx》由会员分享,可在线阅读,更多相关《图形界面设计1.pptx(125页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.组件和容器2.GUI(图形用户界面)布局管理器3.事件处理(举例:一个计算器的图形界面的程序)图形界面设计图形界面设计第1页/共125页1组件和容器Java库提供两种类型的组件第一代组件Java.AWT组件(Abstract Window Toolkit)(适合Applet小程序)第二代组件Javax.Swing组件第2页/共125页AWT的核心内容是组件和容器组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等通过add()方法可将组件加入容器并显示出来。容器是图形用户界面中容纳其他组件的部件,一个容器中可容纳组件或容器。常见容器:对话框(Dialog)、框
2、架(Frame)、窗口(Window)和面板(Panel)。第3页/共125页组件自身不能构成独立的图形界面,必须放到容器对象中。组件和容器的关系组件和容器的关系组件的定位n容器中组件的位置由容器的布局管理器(Layout Manager)决定。第4页/共125页列表列表按钮按钮菜单菜单container另一个窗口另一个窗口窗口,对话框窗口,对话框container第5页/共125页基本组件和容器的类层次JContainerJWindowJPanelJComponentJFrameJDialogJAppletJButtonJMenuJCheckboxJTextfield第6页/共125页常见的
3、的容器常用的容器有:对话框(JDialog)、框架(JFrame)、窗口(JWindow)和面板(JPanel)。JContainerJWindowJFrameJDialogJAppletJPanel第7页/共125页创建简单框架FrameFrame框架(Frame)类是Window类的子类,它是一种带标题框并且可以改变大小的窗口。构造方法Frame(String)可以创建Frame的实例,它带有标题框,构造方法中的String型参数指定了标题内容。第8页/共125页import java.awt.*;public class MyFrame extends Framepublic stati
4、c void main(String args)MyFrame fr=new MyFrame(HelloOutThere!);fr.setSize(400,200);fr.setBackground(Color.blue);fr.setVisible(true);public MyFrame(String str)super(str);.这里调用来自Component类的setSize()方法第9页/共125页使 用 从 Component类 继 承 过 来 的 setSize()方法可以改变Frame实例的大小。必须调用setVisible()方法和setSize()方法才能使Frame的实
5、例可见。第10页/共125页创建面板面板(Panel)与框架类似,也是一种容器,可以容纳其他GUI组件。当一个Panel对象被创建之后,使用Container类的add()方法将它加入到某个Window对象或Frame对象中。第11页/共125页面板示例import java.awt.*;public class FrameWithPanel extends Frame public FrameWithPanel(String str)super(str);public static void main(String args)FrameWithPanel fr=new FrameWithPa
6、nel(Frame with Panel);Panel pan=new Panel();构造函数第12页/共125页 fr.setSize(300,200);fr.setBackground(Color.blue);fr.setLayout(null);pan.setSize(100,100);pan.setBackground(Color.yellow);fr.add(pan);fr.setVisible(true);第13页/共125页Javax.swing.JFrame例程:import java.awt.*;import javax.swing.*;public class MyJFr
7、ame extends JFramepublic MyJFrame(String str)super(str);public static void main(String args)MyJFrame fr=newMyJFrame(MyJframe);nJFrame=Frame+Container第14页/共125页 Container con=fr.getContentPane();/获得面板 fr.setSize(300,300);con.setBackground(Color.red);JPanel pan=new JPanel();pan.setSize(100,100);pan.se
8、tBackground(Color.yellow);con.setLayout(null);con.add(pan);fr.setVisible(true);第15页/共125页常见的组件JContainerJComponentJButtonJMenuJCheckboxJTextfield第16页/共125页JButton组件JButton类 构造函数:JButton();JButton(String label)常见的方法:void setLabel(String Label)/设置按钮的标记 String getLabel()/获取按钮的标记取消取消确定确定第17页/共125页import
9、 javax.swing.*;import java.applet.Applet;public class MyJButton extends Applet public void init()JButton b1=new JButton(按钮1);JButton b2=new JButton();b2.setLabel(按钮2);add(b1);add(b2);第18页/共125页标签 JLabel类作用:一般显示提示信息,用户不能修改构造函数:public JLabel()JLabel(String s)JLabel(String s,int alignment)主要方法:String g
10、etString()/返回标签内容Void setText(String s)/设置标签文本String getAlignment()/返回标签得对齐方式第19页/共125页文本框JTextField类作用:生成一个单行文本域构造函数:JTextField()JTextField(String s)JTextField(int col)JTextField(String s,int col)主要方法:void setText(String t)String getText()/获取响应字符第20页/共125页综合例子import java.awt.*;import javax.swing.*;
11、public class JLogin public static void main(String args)JFrame f=new JFrame(User Login);Container con=f.getContentPane();con.setBackground(Color.lightGray);con.setLayout(new FlowLayout();JLabel lb1=new JLabel(UserID);JTextField T1=new JTextField(linda,20);第21页/共125页 JLabel lb2=new JLabel(Password);J
12、TextField T2=new JTextField(20);JButton b1=new JButton(OK);JButton b2=new JButton(Cancel);con.add(lb1);con.add(T1);con.add(lb2);con.add(T2);con.add(b1);con.add(b2);f.setSize(280,150);f.setVisible(true);第22页/共125页 文本域JTextAreaJTextAreaswing的JTextArea类可生成一个多行的文本域,内容超出显示范围时,具有滚动显示的功能。TextArea类的构造函数:1.p
13、ublic JTextArea(String text)2.public JTextArea(int rows,int columns)3.public JTextArea(String text,int rows,int columns)第23页/共125页TextArea类的常用方法:1.public void append(String str)2.public int getColumns()3.public int getRows()4.public void insert(String str,int pos)5.public void replaceRange(String st
14、r,int start,int end)注意:JTextArea和JList组件 必须放在JScrollpane中JFrameJScrollPanelJTextArea第24页/共125页程序举例:编写testJTextArea.java程序,通过文件输入流将该文件从硬盘读入内存并显示在多行文本框中第25页/共125页import java.awt.*;import javax.swing.*;import javax.swing.text.*;import java.io.*;public class testJTextArea public static void main(String
15、args)testJTextArea obj=new testJTextArea();obj.testArea();public void testArea()JFrame frame=new JFrame(Test);Container con=frame.getContentPane();JTextArea ta=new JTextArea(5,30);/支持滚动的容器组件 JScrollPane pane=new JScrollPane(ta);con.add(pane,BorderLayout.CENTER);第26页/共125页 try /打开文件 FileReader Rin=ne
16、w FileReader(“./testJTextArea.java);ta.read(Rin,null);catch(Exception e)System.exit(0);frame.setSize(200,200);/设置框架大小frame.setVisible(true);/显示框架 转到布局管理器转到布局管理器第27页/共125页复选框javax.Swing.JCheckBox构造函数:1.public JCheckBox(String S)2.public JCheckBox(String S,booleanselected)单选框单选框javax.Swing.JRadioButto
17、nn构造函数:构造函数:1.public JRadioButton(String S)2.public JRadioButton(String S ,boolean selected)第28页/共125页作用:将相互独立的单选框构成一组,常用方法:1.public ButtonGroup()2.public void add(AbstractButton b):作用:将一个单选按钮加到ButtonGroup组件中。3.public int getButtoncount()4.public void remove(AbstractButton b)Javax.Swing.ButtonGroup类
18、类第29页/共125页两种选择框举例import java.awt.*;import java.applet.Applet;import javax.swing.*;public class testJCheckRadioBox extends Applet JCheckBox jcb1,jcb2;JRadioButton jr1,jr2;第30页/共125页 ButtonGroup group1;JPanel p1;public void init()JPanel pCh=new JPanel();JPanel pRa=new JPanel();p1=new JPanel();jcb1=ne
19、w JCheckBox(Computer,true);jcb2=new JCheckBox(English,true);jr1=new JRadioButton(female,true);jr2=new JRadioButton(male,false);第31页/共125页 ButtonGroup group=new ButtonGroup();group.add(jr1);group.add(jr2);/不能将group加入到applet。p1.setLayout(new GridLayout(2,1);pCh.add(jcb1);pCh.add(jcb2);pRa.add(jr1);pRa
20、.add(jr2);p1.add(pCh);p1.add(pRa);add(p1);PChPRa第32页/共125页列表框:JList类(1)Jlist组件必须放在JScrollPane中,否则不具滚动功能。(2)构造函数public JList()Public Jlist(Object object)第33页/共125页import java.awt.*;import javax.swing.*;public class testJList public static void main(String args)testJList obj=new testJList();obj.testJL
21、ist();public void testJList()String book=Java,C+,Fortrain,DataBase,OperationSystem;JList list1=new JList(book);JFrame frame=new JFrame(TestList);Container con=frame.getContentPane();JScrollPane sp=new JScrollPane(list1);con.setLayout(new BorderLayout();con.add(sp,Center);frame.setSize(50,100);frame.
22、setVisible(true);第34页/共125页菜单制作JMenuBar类Jmenu类JmenuItem类第35页/共125页简单的菜单程序import javax.swing.*;public class testJMenu extends JFrameJMenuBar bar;JMenu fileMenu;JMenuItem InputMItem,modifyMItem;JMenuItem queryMItem,deleteMItem;testJMenu(String s)super(s);bar=new JMenuBar();fileMenu=new JMenu(菜单选项);第36
23、页/共125页Input Item=new JMenuItem(录入学生信息);modifyMItem=new JMenuItem(修改学生信息);queryMItem=new JMenuItem(查询学生信息);deleteMItem=new JMenuItem(删除学生信息);fileMenu.add(InputMItem);fileMenu.add(modifyMItem);fileMenu.add(queryMItem);fileMenu.add(deleteMItem);bar.add(fileMenu);This.setJMenuBar(bar);setVisible(true);
24、public static void main(String args)testJMenu s=new testJMenu(菜单窗体);第37页/共125页弹出式菜单第38页/共125页JPopupMenu JMenuItem第39页/共125页弹出式菜单的简单程序import javax.swing.*;import java.awt.*;public class pop2 JFrame f;JPopupMenu popUp;JMenuItem openMItem,copyMItem,pasteMItem;public pop2()f=new JFrame(弹出菜单);popUp=new J
25、PopupMenu(File);openMItem=new MenuItem(open);copyMItem=new JMenuItem(copy);pasteMItem=new JMenuItem(paste);第40页/共125页 popUp.add(openMItem);popUp.add(copyMItem);popUp.add(pasteMItem);f.setSize(300,200);f.setVisible(true);popUp.show(f,100,100);public static void main(String args)pop2 s=new pop2();转到转到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形界面 设计
限制150内