黑马程序员Java培训和Android培训:图形界面编程

来源:互联网 发布:xmind8 mac 破解版 编辑:程序博客网 时间:2024/04/29 01:05
 

AWT= abstract window toolkit  抽象窗口工具包

class component 是所有java图形界面组件的抽象基类

 

jbuilder 9的光标位置的修改:进入Tool  然后输入编辑里面 把粗体勾去

 

事件监视器的类实现了WindowListener接口

要实现这个接口要 import java.awt.event包

 

Public abstract class WindowAdapter

windowAdapter 空实现了WindowListener 的全部方法,那么我们直接去NEW一个WindowAdapter用处不大,所以把其制定为了抽象类,所以我们只需要派生出一个子类,然后重写我们要的方法就OK了

 

框架中加Panel,Panel中加控件

方法中匿名内部类中要访问方法的局部变量的话  要把局部变量设置为final类型

 

菜单的组成: MenuBar  Menu  MenuItem

在框架中加如MenuBar 要用到 setMenuBar()

 

 

文本框架分为:(TextFile)文本域   (TextArea)文本区

文本域只能输入单行文本

 

 

其他组件  比如choice

 

 

package CSDN.luokan;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

 

public class SetFrame extends Frame {

   

    private Panel border;

    private Panel flow;

    private Panel grid;

    private Panel card;

    public   SetFrame(String title)//构造setFrame,传递设置标题

    {

       super(title);//改Frame的title

       setSize(600,500);

       setLocation(200,200);

       setBackground(Color.yellow);

       setBoderPanel();

       setFlowPanel();

       setGridPanel();

       setCardLayout();

       setLayout(new GridLayout(2,2));//框架的布局

       add(border);

       add(flow);

       add(grid);

       add(card);

       //窗口监控器

       addWindowListener(new WindowAdapter()

       {

           public void windowClosing(WindowEvent e)

           {

              System.exit(0);

           }

       });

       //创建菜单

       MenuBar mb1=new MenuBar();

       Menu m1=new Menu("create");

       Menu m2=new Menu("extend");

       MenuItem mia=new MenuItem("exit");

       //实现Menuitem的退出功能呢个

       mia.addActionListener(new ActionListener()

       {

           @Override

           public void actionPerformed(ActionEvent e) {

           System.exit(0);

           }

       });

       MenuItem mib=new MenuItem("open");

        m2.add(mia);

        m1.add(mib);

        mb1.add(m1);

        mb1.add(m2);

       setMenuBar(mb1);

       //对话框弹出后,读取文本文件

       //final TextField tf=new TextField(29);//指定为29列

       final TextArea ta=new TextArea();

       flow.add(ta);

//怎么弹出一个对话框(FileDialog)

    mib.addActionListener(new ActionListener()

    {

       @Override

       public void actionPerformed(ActionEvent e) {

           FileDialog fd=new FileDialog(new  Frame(),"弹出窗口",FileDialog.LOAD);

           // FileDialog.LOAD为读取模式   另外一种为SAVE

           fd.show();

           //读取文件

       String strFile =fd.getDirectory()+ fd.getFile();//得到路径和文件名字

           if(strFile!=null)

           {//读取文件内容

              try{

                  FileInputStream fis =new FileInputStream(strFile);

                  byte []buf=new byte[10*1024];

                  int len = fis.read(buf);

                  ta.append(new String(buf,0,len));

                  fis.close();

              }catch(Exception e1)

              {

                  e1.printStackTrace();

              }

             

           }

          

       }

      

    });

   

      

    }

    //一下分别设置4个Panel,分别在4个panel中加入不同的控件

    public void setBoderPanel()

    {

       border =new Panel();

       border.setLayout(new BorderLayout());

       Button b1=new Button("NORTH");

       Button b2=new Button("SOUTH");

       Button b3=new Button("WEST");

       Button b4=new Button("EAST");

       Button b5=new Button("CENER");

       border.add(b1,BorderLayout.NORTH);

       border.add(b2,BorderLayout.SOUTH);

       border.add(b3,BorderLayout.WEST);

       border.add(b4,BorderLayout.EAST);

       border.add(b5,BorderLayout.CENTER);

      

    }

    public void setFlowPanel()

    {

       flow=new Panel();

       flow.setLayout(new FlowLayout());

       Button b6=new Button("左");

       Button b7=new Button("右");

       b6.addActionListener(new ActionListener()//b6按钮实现的功能

       {

 

           @Override

           public void actionPerformed(ActionEvent e) {

           ((Button)e.getSource()).setLabel("右");

             

           }

          

       });

       flow.add(b6);

       flow.add(b7);

    }

    public void setGridPanel()

    {

       grid=new Panel();

       grid.setLayout(new GridLayout(2,3,2,3));

       Button b8=new Button("1");

       Button b9=new Button("2");

       Button b10=new Button("3");

       Button b11=new Button("4");

       grid.add(b8);

       grid.add(b9);

       grid.add(b10);

       grid.add(b11);

      

    }

    public void setCardLayout()

    {     final CardLayout c1= new CardLayout();//内部类访问的数据 要final类型

       card=new Panel();

       card.setLayout(c1);

       Button b12=new  Button("男");

       Button b13=new  Button("女");

       Button b14=new  Button("人妖");

       //实现翻牌的效果

       ActionListener al=new ActionListener()

       {

 

           @Override

           public void actionPerformed(ActionEvent e) {

              c1.next(card);

             

           }

      

       };

       b12.addActionListener(al);

       b13.addActionListener(al);

       b14.addActionListener(al);

      

       card.add(b12,"1");//要加约束字符串,可以自己取

       card.add(b13,"2");

       card.add(b14,"3");

      

    }

   

   

    public static void main(String [] args)

    {

       SetFrame f=new SetFrame("itheima");

       f.show();

   

      

    }

 

}