Java图形界面知识.doc_第1页
Java图形界面知识.doc_第2页
Java图形界面知识.doc_第3页
Java图形界面知识.doc_第4页
Java图形界面知识.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Frame1.按钮:Frame f =new Frame(“hello”);f.setSize(200,200);f.setVisible(true);/让其显示Panel p=new Panel();f.add(p);Button b= new Button(“确定”);p.add(b);Button对象构造器的参数是按钮上显示的内容2. 复选框Checkbox c1=new Checkbox(“汉堡”,true);Checkbox c2= new Checkbox(“薯条”,true);p.add(c1);p.add(c2);注:构造器中第一个参数代表复选框显示的内容,第二个参数true代表该项默认选中3. 单选项先创建一个CheckboxGroup对象:CheckboxGroup g=new CheckboxGroup();将g作为参数传递到各个单选按钮,在这一组单选按钮中,用户只能选一个:Checkbox ch1=new Checkbox(“人民币”,g,true);Checkbox ch2=new Checkbox(“美金”,g,false);p.add(ch1);p.add(ch2);4. 下拉列表框先创建Choice对象:Choice c=new Choice();利用addItem()方法添加各种选项c.addItem(“男”);c.addItem(“女”);p.add(c);5. 列表框先创建List对象,第一个参数指定显示几行,第二个参数为true则支持多选,false则一次只能选中一个:List t=new List(4,true);利用add方法添加各种文本选项:t.add(“今天”);t.add(“昨天”);p.add(t);6. 在窗口显示对话框Frame f=new Frame(“hello”);对话框与某个Frame对象关联,但不是放在Frame中。第二个参数为对话框标题栏的内容。第三个参数为true代表用户处理玩对话框后才可以和Frame进行交互,flase则代表用户可以同时和Frame交互:Dialog d=new Dialog(f,”hello”,true);D.add(new Button(“OK”);f.setSize(200,200);f.setVisible(true);d.setSize(100,100);d.setVisible(true);7. 文件对话框Frame f=new Frame(“hello”);第一个参数指定对话框和哪个Frame相关。第二个参数指定对话框标题栏内容:FileDialog d=new FileDialog(f,”test”);f.setSize(200,200);f.setVisible(true);d.setVisile(true);得到所选的目录和文件名String s=d.getDirectory()+d.getFile();System.out.println(s);8. 标签显示字符串Frame f=new Frame(“hello”);Lable l1=new Lable(“想吃什么”);Lable l2=new Lable(“付款方式”);Panel p=new Panel();p.add(l1);p.add(l2);f.add(p);f.setSize(200,200);f.setVisible(true);完整的例子Frame f=new Frame(“hello”);Lable l1=new Lable(“想吃什么”);Lable l2=new Lable(“付款方式”);Panel p=new Panel();Checkbox c1=new Checkbox(“汉堡”,true);Checkbox c2= new Checkbox(“薯条”,true);p.add(c1);p.add(c2);P.add(l2);CheckboxGroup g=new CheckboxGroup();Checkbox ch1=new Checkbox(“人民币”,g,true);Checkbox ch2=new Checkbox(“美金”,g,false);p.add(l1);p.add(l2);f.add(p);f.setSize(200,200);f.setVisible(true);9. 滚动面板可自动产生滚动条Frame f=new Frame(“hello”);ScrollPane sp=new ScrollPane();Panel p=new Panel();f.add(sp);sp.add(p);p.add(new Button(“ok”);p.add(new Button(“cancel”);p.add(new Button(“reset”);f.setSize(100,100);f.setVisible(true);10. 单行文本框Frame f=new Frame(“hello”);第一个参数为初始显示的字符串。第二个参数为文本框最大输入的字符数:TextField t=new TextField(“input”,30);Panel p=new Panel();f.add(t);p.add(p);f.add(p);f.setSize(300,300);f.setVisible(true);11.多行文本输入框Frame f=new Frame(“hello”);第一个参数为初始显示的字符串,第二个参数为显示的行数,第三个参数为显示的宽度:TextArea t=new TextArea(“input”,4,30);Panel p=new Panel();p.add(t);f.add(p);f.setSize(300,300);f.setVisible(true);12. 菜单Frame f=new Frame(“hello”);菜单:Menu m1=new Menu(“File”);菜单项:Menu m11=newMenuItem(“Open”);Menu m12=new MenuItem(“Save”);m1.add(m11);m2.add(m12);菜单栏:MenuBar mb=new MenuBar();mb.add(m1);在Frame中使用定义好的菜单栏f.setMenuBar(mb);f.setSize(300,300);f.steVisible(true);13. 快捷菜单Frame f=new Frame(“hello”);PopupMenu m1=new PopupMenu(“File”);MenuItem m11=new MenuItem(“Open”);MenuItem m12=new MenuItem(“Save”);m1.add(m11);m1.add(m12);f.add(m1);f.setSize(300,300);f.setVisible(true);第二个和第三个参数指定快捷键菜单对应组件的相对显示位置:m1.show(f,20,50);布局1.边界布局举例Frame f=new Frame(“hello”);Panel p=new Panel();BorderLayout b1=new BorderLayout();p.setLayout(b1);/指定布局p.add(new Button(“ok1”),”East”);p.add(new Button(“ok2”),”West”);p.add(new Button(“ok3”),”South”);p.add(new Button(“ok4”),”North”);p.add(new Button(“ok5”),”Center”);f.add(p);f.setSize(200,200);f.setVisible(true);2. 流布局FlowLayout从左到右,自上而下a.创建流布局对象FlowLayout t=new FlowLayout();FlowLayout t=new FlowLayout(FlowLayout.RIGHT);FlowLayout t=new FlowLayout(FlowLayout.LEFT,10,20);b.指定容器使用该布局f.setLayout(t);流布局例子Frame f=new Frame(“hello”);Panel p=new Panel();FlowLayout f1=new FlowLayout();p.setLayout(f1);p.add(new Button(“ok1”);p.add(new Button(“ok2”);p.add(new Button(“ok3”);p.add(new Button(“ok4”);f.add(p);f.pack();f.setVisible(true);3. 卡片布局卡片布局将各个界面叠加在一起,每添加一个组件,都为其起一个名字。举例Frame f=new Frame(“hello”);Panel p1=new Panel();Panel p2=new Panel();Panle p3=new Panel();CardLayout b1=new CardLayout();f.setLayout(b1);p1.add(new Button(“1”);p2.add(new Button(“2”);p3.add(new Button(“3”);f.add(p1,”1”);f.add(p2,”2”);f.add(p3,”3”);b1.show(f,args0);f.setSize(200,200);f.setVisible(true);4. 网格布局网格布局将窗口分为几行几列的网格,按照从左至右,自上而下的方式依次放置组件。网格有2行3列:GridLayout b1= new GridLayout(2,3);组件的水平和垂直间隔是10和20:GridLayout b1=new GridLayout(2,3,10,20);例子Frame f=new Frame(“hello”);Panel p=new Panel();GridLayout b1=new GridLayout(2,3,10,20);p.setLayout(b1);p.add(new Button(“1”);p.add(new Button(“2”);p.add(new Button(“3”);p.add(new Button(“4”);p.add(new Button(“5”);p.add(new Button(“6”);f.add(p);f.setSize(200,200);f.setVisible(true);5. null布局使用null布局可以达到精确定位和控制组件大小的要求。setLayout(null)设置布局管理器为nullSetBounds(int x,int y,int width,int height)移动组件并调整其大小。由x和y指定左上角的新位置,由width和height指定新的大小。实现上面的图:Frame f= new Frame(“hello”);Panel p=new panel();p.setLayout(null);Label l1=new Lable(“用户名”);l1.setBounds(20,20,50,30);p.add(l1);TextField t1=new TextField();t1.setBounds(80,20,200,30);p.add(t1);Lable l2=new Lable(“密码”);l2.setBounds(20,60,50,30);p.add(l2);TextField t2=new TextField();t2.setBounds(80,60,200,30);p.add(t2);Button b1=new Button(“ok”);b1.setBounds(20,140,80,30);P.add(b1);Button b2=new Button(“cancel”);B2.setBounds(110,140,80,30);p.add(b2);f.add(p);f.setSize(300,250);f.setVisible(true);事件处理处理的流程图形界面制作好后,需要对用户的各种操作如鼠标单击、键盘操作等作出响应。用户的哲学操作成为事件源,对不同的事件源,Java虚拟机会自动产生相应的事件对象。单击按钮,自动产生的对象为ActionEvent按动键盘,自动产生的对象为KeyEvent编辑事件处理器鼠标单击,编写事件处理器,需要实现ActionListenr接口,在这个接口中有一个方法actionPerformed(ActionEvent e)需要实现。实例:import java.awt.event.*;cass xx implenments ActionListenerPublic void actionperformed(ActionEvent e)委托方式组件.addxxxListener(事件处理器)该组件发生的事件交给实现xxxListener接口的事件处理器类去处理如,按钮b1:b1.addActionLietener(m);单击按钮b1后交给m对象(事件处理器的对象)去处理窗口事件的处理事件处理器实现的接口为WindowListener,关闭窗口的方法windowClosing()F.dispose();关闭窗口System.exit(0);退出程序接口中的其他方法Public void windowActivated(WindowEvent e)Public void windowClosed(WindoeEvent e)Public void windowDeactivated(WindowEvent e)Public void windowDeciconified(WindowEvent e)Public void windowlconified(WindowEvent e)Public void windowOpened(WindowEvent e)适配器适配器Adapter类适配器类抽象类,与Listener接口对应,实现了对应接口中的每个方法例如:与WindowListener接口对应的适配器类为WindowAdapter类,如果处理窗口事件,则可以有下面两种方式:1. implements WindowListener:实现所有抽象方法2. Extends WindowAdapter:只重写需要的方法(ActionListener没有对应的适配器),因为它只有一个方法,使用适配器并不能简化代码Swing标签JLabel l1=new JLable(“hello”);c.add(l1);在标签中加入图片:JLabel jl=new JLabel(“111”,new ImageIcon(“1.jpg”),JLabel.CENTER);JFrame if=new JFrame(“1”);Container c=jf.getContentPane();c.add(jl);jf.setSize(200,200);jf.setVisible(true);下拉列表框JComboBox jcb=new JComboBox();jcb.addItem(“today”);jcb.addItem(“tomorrow”);jcb.addItem(“yesterday”);c.add(jcb);列表框String a=“汉堡”,”薯条”,”可乐”;JList jl=new JList(a);c.add(jl);文本框JTextField jtf=new JTextField(20);c.add(jtf);标准对话框JOptionPaneImport javax.swing.*;Class gui1public static void main(String args)String inputValue=JOptionPane.showInputDialog(“please input a value”);System.out.println(inputValue);内部类和匿名类内类内类又称为类的嵌套,可以把一个类(称为内类)定义在另一个类(称为外类)的内部,与成员变量、方法并列使用内类的主要用途是内类中可直接访问外类的成员变量主要用途class Outerint outer_x=100;class Innervoid display()System.out.println(out_x);/内类可以直接使用外类成员变量void test()Inner inner=new Inner();/外类可直接使用内类创建对象inner.display();Public static void main(String args)Outer outer=new Outer();outer.test();创建内类对象在静态方法中应该先创建外类对象,通过外内的new方法来创建内类对象/创建内类对象class Outerprivate int size;class Innervoid tt()size=100;void test()Inner x=new Inner();/正确public static void main(String args)Outer s=new Outer();/*Inner y=new Inner();/错误*/Inner y=s.newInner();/正确静态内类静态内类和外类并列,不可以直接访问外类的成员变量,静态内类可以定义静态的成员变量/静态内类class a6private int size;static class void m2()size=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论