当前位置:   article > 正文

GUI

GUI

Edit

 

GUI

  • java.Awt:需要调用本地系统方法实现功能,属于重量级控件 ;
  • javax.Swing:在Awt的基础上建立的一套图形界面系统,提供了更多的控件,而且完全由Java实现,增强了移植性,属于轻量级控件 ;

继承关系图

 


常见的布局管理器

FlowLayout(流式布局管理器):从左到右顺序排列,Panel默认的布局管理器;
BorderLayout(边界布局管理器):东南西北中的布局方式,Frame默认的布局管理器;
GridLayout(网格布局管理器):把窗体画成网格的布局管理器;
GridBagLayout(网格包布局管理器):非规则的矩阵;
CardLayout(卡片布局管理器):选项卡;

创建图形化界面

1.创建frame窗体;
2.对窗体进行设置,包括大小,位置等等;
3.定义组件,通过add方法添加到窗体中;
4.让窗体显示.setVisible(true)

事件监听机制的特点

1.事件源:就是awt或者swing包中的那些图形界面组件;
2.事件:每一个事件源都有自己特有的对象事件和共性事件;
3.监听器:将可以触发某一个事件的动作(不止一个)都已经封装到了监听器中;
以上三者在Java中都已经定义好了,直接获取对象来用就可以了


1.import java.awt.*;2.import java.awt.event.*;3.class  AwtDemo4.{5.    public static void main(String[] args) 6.    {7.        Frame f = new Frame("my awt");8.        f.setSize(500,400);9.        f.setLocation(300,200);10.        f.setLayout(new FlowLayout());11.        Button b = new Button("登录");12.        f.add(b);13.        f.setVisible(true);14.        //添加一个监听器15.        f.addWindowListener(new MyWinListener());16.    }17.18.}19./*20.WindowListener是一个接口,如果要调用里面的方法,得把里面的方法全部覆盖,所以用它的子类WindowAdapter,21.WindowAdapter是一个抽象类,不能实例化,所以继承它并复写我们需要的方法22.*/23.//窗体事件24.class MyWinListener extends WindowAdapter25.{26.    public void windowClosing(WindowEvent e)27.    {28.        System.out.println("我关了,"+e.toString());29.        System.exit(0);30.    }31.    public void windowActivated(WindowEvent e) 32.    {33.        System.out.println("被激活了");34.    }35.    public void windowOpened(WindowEvent e) 36.    {37.        System.out.println("我被打开了");38.    }39.40.}

窗体事件,Action事件,鼠标事件,键盘事件

1.import java.awt.*;2.import java.awt.event.*;3.class FrameDemo 4.{5.    private Frame fr;6.    private Button bu;7.    private TextField te;8.    FrameDemo()9.    {10.        init();11.    }12.    public void init()13.    {14.        fr = new Frame("my awt");       15.        te = new TextField(20);16.        bu = new Button("my button");17.        fr.setBounds(500,400,500,400);18.        fr.setLayout(new FlowLayout());19.        fr.add(te);20.        fr.add(bu);21.        myEvent();22.        fr.setVisible(true);23.    }24.    public void myEvent()25.    {26.        //窗体事件27.        fr.addWindowListener(new WindowAdapter()28.        {29.            public void windowClosing(WindowEvent e)30.            {31.                System.out.println("我关了");32.                System.exit(0);33.            }34.        });35.        //Action事件36.        //ActionListener是为数不多的没有适配器的监听器37.        bu.addActionListener(new ActionListener()38.        {39.            public void actionPerformed(ActionEvent e)40.            {41.                System.out.println("活动了");42.            }   43.        });44.        //鼠标事件,MouseListener有适配器MouseAdapter45.        bu.addMouseListener(new MouseAdapter()46.        {47.            int clickcount = 1;48.            int entercount = 1;49.            public void mouseClicked(MouseEvent e)50.            {51.                //System.out.println("点击"+clickcount++);52.                if (e.getClickCount()==2 )53.                {54.                    System.out.println("双击了");55.                }56.            }57.            public void mouseEntered(MouseEvent e)58.            {59.                System.out.println("进入"+entercount++);60.            }61.        });62.        //键盘事件,KeyListener,有适配器KeyAdapter63.        bu.addKeyListener(new KeyAdapter()64.        {65.            public void keyPressed(KeyEvent e)66.            {67.                if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER)68.                {69.                    System.out.println("ctrl enter run");   70.                }71.                System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"  ...  "+e.getKeyCode());72.            }73.        });74.        te.addKeyListener(new KeyAdapter()75.        {76.            public void keyPressed(KeyEvent e)77.            {78.                int code = e.getKeyCode();79.                //在文本框中输入数字,字母不让进,且提示非法80.                if (!(code>=KeyEvent.VK_NUMPAD0 && code<=KeyEvent.VK_NUMPAD9))81.                {82.                    e.consume();//void consume(): 使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。 83.                    System.out.println("非法数据");84.                }85.            }86.        });87.    }88.    public static void main(String[] args) 89.    {90.        FrameDemo f = new FrameDemo();91.    }92.}

GUI练习

在文本框输入目录,点击”转到”按钮,将该目录中的文件与文件夹名称列在下面的文本区域中

1.import java.awt.*;2.import java.awt.event.*;3.import java.io.*;4.class FrameDemo2 5.{6.    private Frame fr;7.    private Button bu;8.    private TextField te;9.    private TextArea ta;10.    private Dialog di;11.    private Label la;12.    private Button okbut;13.    FrameDemo2()14.    {15.        init();16.    }17.    public void init()18.    {19.        fr = new Frame("my awt");//创建一个窗体       20.        te = new TextField(40);21.        bu = new Button("转到");22.        ta = new TextArea(30,50);23.        di = new Dialog(fr,"信息提示",true);//创建一个对话窗24.        la = new Label();25.        okbut = new Button("确定");//创建对话窗的按钮26.        fr.setBounds(500,400,700,500);27.        fr.setLayout(new FlowLayout());28.        di.setBounds(600,500,300,200);//设置对话框的位置,大小29.        di.setLayout(new FlowLayout());//设置对话框的排列的方式30.        fr.add(te);31.        fr.add(bu);32.        fr.add(ta);33.        di.add(la);//将标签加入对话框34.        di.add(okbut);//将按钮加入对话框35.        myEvent();36.        fr.setVisible(true);37.    }38.    public void myEvent()39.    {40.        //窗体事件41.        fr.addWindowListener(new WindowAdapter()42.        {43.            public void windowClosing(WindowEvent e)44.            {45.                System.exit(0);46.            }47.        });48.        //鼠标事件,MouseListener有适配器MouseAdapter49.        bu.addMouseListener(new MouseAdapter()50.        {51.            public void mouseClicked(MouseEvent e)52.            {53.                show();54.            }55.        });56.        di.addWindowListener(new WindowAdapter()57.        {58.            public void windowClosing(WindowEvent e)59.            {60.                di.setVisible(false);61.            }62.        });63.        okbut.addMouseListener(new MouseAdapter()64.        {65.            public void mouseClicked(MouseEvent e)66.            {67.                di.setVisible(false);68.            }69.        });70.        //直接用Enter键就可以直接来代替上面按钮的功能71.        te.addKeyListener(new KeyAdapter()72.        {73.            public void keyPressed(KeyEvent e)74.            {75.                if (e.getKeyCode()==KeyEvent.VK_ENTER)76.                {77.                    show();78.                }79.            }80.        });81.82.    }83.    //将查找文件的方法封装到一个方法里,以方便调用84.    public void show()85.    {86.        String dir = te.getText();87.        te.setText("");     88.        File f = new File(dir);89.        if (f.exists() && f.isDirectory())90.        {91.            ta.setText("");92.            String[] arr = f.list();93.            for (String str : arr)94.            {95.                ta.append(str+"\r\n");96.            }97.        }98.        else99.        {100.            String msg = "输入的地址:"+dir+"有误,请重新输入";101.            la.setText(msg);102.            di.setVisible(true);103.        }104.    }105.    public static void main(String[] args) 106.    {107.        new FrameDemo2();108.    }109.}110.

效果图

 

菜单栏的应用

1.//菜单栏的应用2./*3.带包名编译:javac -d e:\\1 MyMenuDemo.java4.打jar包:jar -cvf my.jar mymenu5.带配置信息:jar -cvfm my.jar 1.txt mymenu6.*/7.package mymenu8.import java.awt.*;9.import java.awt.event.*;10.import java.io.*;11.public class MyMenuDemo 12.{13.    private Frame fr;14.    private MenuBar mb;15.    private Menu me,subme;16.    private MenuItem closemi,openmi,savemi,submi;17.    private FileDialog loaddia,savedia;18.    private TextArea ta;19.    private File file;20.    MyMenuDemo()21.    {22.        init();23.        myEvent();24.        fr.setVisible(true);25.    }26.    private void init()27.    {28.        fr = new Frame("my awt");29.        //创建菜单栏30.        mb = new MenuBar();31.        //创建菜单32.        me = new Menu("文件");33.        subme = new Menu("子菜单");34.        closemi = new MenuItem("退出");35.        savemi = new MenuItem("保存");36.        openmi = new MenuItem("打开");37.        submi = new MenuItem("子条目");38.        loaddia = new FileDialog(fr,"打开",FileDialog.LOAD);//创建一个文件对话框39.        savedia = new FileDialog(fr,"保存",FileDialog.SAVE);40.        ta = new TextArea();41.42.        fr.setBounds(400,500,500,400);      43.        fr.setMenuBar(mb);//在窗体中加入菜单栏44.        fr.add(ta);45.46.        mb.add(me);//菜单栏中加入"文件"菜单47.48.        me.add(subme);//"文件"菜单中加入"子菜单"49.        me.add(openmi);//"文件"菜单中加入"打开"条目50.        me.add(savemi);51.        me.add(closemi);52.53.        subme.add(submi);//"子菜单"中加入"子条目"54.    }55.    private void myEvent()56.    {57.        fr.addWindowListener(new WindowAdapter()58.        {59.            public void windowClosing(WindowEvent e)60.            {61.                System.exit(0);62.            }63.        });64.        openmi.addActionListener(new ActionListener()65.        {66.            public void actionPerformed(ActionEvent e)67.            {68.                loaddia.setVisible(true);69.                String dir = loaddia.getDirectory();70.                String fi = loaddia.getFile();71.                if (dir==null || fi==null)72.                {73.                    return;74.                }75.                ta.setText("");76.                File file = new File(dir,fi);77.                try78.                {79.                    BufferedReader bufr = new BufferedReader(new FileReader(file));80.                    String line = null;81.                    while ((line=bufr.readLine())!=null)82.                    {83.                        ta.append(line+"\r\n");84.                    }85.                    bufr.close();86.                }87.                catch (IOException ex)88.                {89.                    throw new RuntimeException("打开失败");90.                }91.            }92.        });93.        savemi.addActionListener(new ActionListener()94.        {95.            public void actionPerformed(ActionEvent e)96.            {97.                //这里如果文件已经存在了,就直接保存,不用弹出对话框98.                if (file==null)99.                {100.                    savedia.setVisible(true);101.                    String dir = savedia.getDirectory();102.                    String fi = savedia.getFile();103.                    if (dir == null || fi == null)104.                    {105.                        return;106.                    }107.                    file = new File(dir,fi);108.                }109.                try110.                {111.                    BufferedWriter bufw = new BufferedWriter(new FileWriter(file));112.                    String str = ta.getText();113.                    bufw.write(str);114.                    bufw.flush();115.                    bufw.close();116.                }117.                catch (IOException ex)118.                {119.                    throw new RuntimeException("保存失败");120.                }121.            }122.123.        });124.        closemi.addActionListener(new ActionListener()125.        {126.            public void actionPerformed(ActionEvent e)127.            {128.                System.exit(0);129.            }130.        });131.    }132.    public static void main(String[] args) 133.    {134.        new MyMenuDemo();135.    }136.}137.

效果图

 

@%2802.%u8D44%u6599%29%5BGUI%2C%20awt%5D%0A%23GUI%0A%3E-%20java.Awt%3A%u9700%u8981%u8C03%u7528%u672C%u5730%u7CFB%u7EDF%u65B9%u6CD5%u5B9E%u73B0%u529F%u80FD%2C%u5C5E%u4E8E%u91CD%u91CF%u7EA7%u63A7%u4EF6%20%3B%0A%3E-%20javax.Swing%3A%u5728Awt%u7684%u57FA%u7840%u4E0A%u5EFA%u7ACB%u7684%u4E00%u5957%u56FE%u5F62%u754C%u9762%u7CFB%u7EDF%2C%u63D0%u4F9B%u4E86%u66F4%u591A%u7684%u63A7%u4EF6%2C%u800C%u4E14%u5B8C%u5168%u7531Java%u5B9E%u73B0%2C%u589E%u5F3A%u4E86%u79FB%u690D%u6027%2C%u5C5E%u4E8E%u8F7B%u91CF%u7EA7%u63A7%u4EF6%20%3B%0A%0A%23%23%u7EE7%u627F%u5173%u7CFB%u56FE%0A%21%5BAlt%20text%5D%28./GUI.jpg%29%0A%0A---%0A%0A%23%23%u5E38%u89C1%u7684%u5E03%u5C40%u7BA1%u7406%u5668%0A%3EFlowLayout%28%u6D41%u5F0F%u5E03%u5C40%u7BA1%u7406%u5668%29%3A%u4ECE%u5DE6%u5230%u53F3%u987A%u5E8F%u6392%u5217%2CPanel%u9ED8%u8BA4%u7684%u5E03%u5C40%u7BA1%u7406%u5668%3B%0A%3EBorderLayout%28%u8FB9%u754C%u5E03%u5C40%u7BA1%u7406%u5668%29%3A%u4E1C%u5357%u897F%u5317%u4E2D%u7684%u5E03%u5C40%u65B9%u5F0F%2CFrame%u9ED8%u8BA4%u7684%u5E03%u5C40%u7BA1%u7406%u5668%3B%0A%3EGridLayout%28%u7F51%u683C%u5E03%u5C40%u7BA1%u7406%u5668%29%3A%u628A%u7A97%u4F53%u753B%u6210%u7F51%u683C%u7684%u5E03%u5C40%u7BA1%u7406%u5668%3B%0A%3EGridBagLayout%28%u7F51%u683C%u5305%u5E03%u5C40%u7BA1%u7406%u5668%29%3A%u975E%u89C4%u5219%u7684%u77E9%u9635%3B%0A%3ECardLayout%28%u5361%u7247%u5E03%u5C40%u7BA1%u7406%u5668%29%3A%u9009%u9879%u5361%3B%0A%0A%0A%23%23%u521B%u5EFA%u56FE%u5F62%u5316%u754C%u9762%0A%3E1.%u521B%u5EFAframe%u7A97%u4F53%3B%0A%3E2.%u5BF9%u7A97%u4F53%u8FDB%u884C%u8BBE%u7F6E%2C%u5305%u62EC%u5927%u5C0F%2C%u4F4D%u7F6E%u7B49%u7B49%3B%0A%3E3.%u5B9A%u4E49%u7EC4%u4EF6%2C%u901A%u8FC7add%u65B9%u6CD5%u6DFB%u52A0%u5230%u7A97%u4F53%u4E2D%3B%0A%3E4.%u8BA9%u7A97%u4F53%u663E%u793A.setVisible%28true%29%0A%0A%23%23%u4E8B%u4EF6%u76D1%u542C%u673A%u5236%u7684%u7279%u70B9%0A%3E1.%u4E8B%u4EF6%u6E90%3A%u5C31%u662Fawt%u6216%u8005swing%u5305%u4E2D%u7684%u90A3%u4E9B%u56FE%u5F62%u754C%u9762%u7EC4%u4EF6%3B%0A%3E2.%u4E8B%u4EF6%3A%u6BCF%u4E00%u4E2A%u4E8B%u4EF6%u6E90%u90FD%u6709%u81EA%u5DF1%u7279%u6709%u7684%u5BF9%u8C61%u4E8B%u4EF6%u548C%u5171%u6027%u4E8B%u4EF6%3B%0A%3E3.%u76D1%u542C%u5668%3A%u5C06%u53EF%u4EE5%u89E6%u53D1%u67D0%u4E00%u4E2A%u4E8B%u4EF6%u7684%u52A8%u4F5C%28%u4E0D%u6B62%u4E00%u4E2A%29%u90FD%u5DF2%u7ECF%u5C01%u88C5%u5230%u4E86%u76D1%u542C%u5668%u4E2D%3B%0A%3E%u4EE5%u4E0A%u4E09%u8005%u5728Java%u4E2D%u90FD%u5DF2%u7ECF%u5B9A%u4E49%u597D%u4E86%2C%u76F4%u63A5%u83B7%u53D6%u5BF9%u8C61%u6765%u7528%u5C31%u53EF%u4EE5%u4E86%0A%0A---%0A%60%60%60java%0Aimport%20java.awt.*%3B%0Aimport%20java.awt.event.*%3B%0Aclass%20%20AwtDemo%0A%7B%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20%0A%09%7B%0A%09%09Frame%20f%20%3D%20new%20Frame%28%22my%20awt%22%29%3B%0A%09%09f.setSize%28500%2C400%29%3B%0A%09%09f.setLocation%28300%2C200%29%3B%0A%09%09f.setLayout%28new%20FlowLayout%28%29%29%3B%0A%09%09Button%20b%20%3D%20new%20Button%28%22%u767B%u5F55%22%29%3B%0A%09%09f.add%28b%29%3B%0A%09%09f.setVisible%28true%29%3B%0A%09%09//%u6DFB%u52A0%u4E00%u4E2A%u76D1%u542C%u5668%0A%09%09f.addWindowListener%28new%20MyWinListener%28%29%29%3B%0A%09%7D%0A%0A%7D%0A/*%0AWindowListener%u662F%u4E00%u4E2A%u63A5%u53E3%2C%u5982%u679C%u8981%u8C03%u7528%u91CC%u9762%u7684%u65B9%u6CD5%2C%u5F97%u628A%u91CC%u9762%u7684%u65B9%u6CD5%u5168%u90E8%u8986%u76D6%2C%u6240%u4EE5%u7528%u5B83%u7684%u5B50%u7C7BWindowAdapter%2C%0AWindowAdapter%u662F%u4E00%u4E2A%u62BD%u8C61%u7C7B%2C%u4E0D%u80FD%u5B9E%u4F8B%u5316%2C%u6240%u4EE5%u7EE7%u627F%u5B83%u5E76%u590D%u5199%u6211%u4EEC%u9700%u8981%u7684%u65B9%u6CD5%0A*/%0A//%u7A97%u4F53%u4E8B%u4EF6%0Aclass%20MyWinListener%20extends%20WindowAdapter%0A%7B%0A%09public%20void%20windowClosing%28WindowEvent%20e%29%0A%09%7B%0A%09%09System.out.println%28%22%u6211%u5173%u4E86%2C%22+e.toString%28%29%29%3B%0A%09%09System.exit%280%29%3B%0A%09%7D%0A%09public%20void%20windowActivated%28WindowEvent%20e%29%20%0A%09%7B%0A%09%09System.out.println%28%22%u88AB%u6FC0%u6D3B%u4E86%22%29%3B%0A%09%7D%0A%09public%20void%20windowOpened%28WindowEvent%20e%29%20%0A%09%7B%0A%09%09System.out.println%28%22%u6211%u88AB%u6253%u5F00%u4E86%22%29%3B%0A%09%7D%0A%0A%7D%0A%60%60%60%0A%0A---%0A**%u7A97%u4F53%u4E8B%u4EF6%2CAction%u4E8B%u4EF6%2C%u9F20%u6807%u4E8B%u4EF6%2C%u952E%u76D8%u4E8B%u4EF6**%0A%60%60%60java%0Aimport%20java.awt.*%3B%0Aimport%20java.awt.event.*%3B%0Aclass%20FrameDemo%20%0A%7B%0A%09private%20Frame%20fr%3B%0A%09private%20Button%20bu%3B%0A%09private%20TextField%20te%3B%0A%09FrameDemo%28%29%0A%09%7B%0A%09%09init%28%29%3B%0A%09%7D%0A%09public%20void%20init%28%29%0A%09%7B%0A%09%09fr%20%3D%20new%20Frame%28%22my%20awt%22%29%3B%09%09%0A%09%09te%20%3D%20new%20TextField%2820%29%3B%0A%09%09bu%20%3D%20new%20Button%28%22my%20button%22%29%3B%0A%09%09fr.setBounds%28500%2C400%2C500%2C400%29%3B%0A%09%09fr.setLayout%28new%20FlowLayout%28%29%29%3B%0A%09%09fr.add%28te%29%3B%0A%09%09fr.add%28bu%29%3B%0A%09%09myEvent%28%29%3B%0A%09%09fr.setVisible%28true%29%3B%0A%09%7D%0A%09public%20void%20myEvent%28%29%0A%09%7B%0A%09%09//%u7A97%u4F53%u4E8B%u4EF6%0A%09%09fr.addWindowListener%28new%20WindowAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20windowClosing%28WindowEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.out.println%28%22%u6211%u5173%u4E86%22%29%3B%0A%09%09%09%09System.exit%280%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09//Action%u4E8B%u4EF6%0A%09%09//ActionListener%u662F%u4E3A%u6570%u4E0D%u591A%u7684%u6CA1%u6709%u9002%u914D%u5668%u7684%u76D1%u542C%u5668%0A%09%09bu.addActionListener%28new%20ActionListener%28%29%0A%09%09%7B%0A%09%09%09public%20void%20actionPerformed%28ActionEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.out.println%28%22%u6D3B%u52A8%u4E86%22%29%3B%0A%09%09%09%7D%09%0A%09%09%7D%29%3B%0A%09%09//%u9F20%u6807%u4E8B%u4EF6%2CMouseListener%u6709%u9002%u914D%u5668MouseAdapter%0A%09%09bu.addMouseListener%28new%20MouseAdapter%28%29%0A%09%09%7B%0A%09%09%09int%20clickcount%20%3D%201%3B%0A%09%09%09int%20entercount%20%3D%201%3B%0A%09%09%09public%20void%20mouseClicked%28MouseEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09//System.out.println%28%22%u70B9%u51FB%22+clickcount++%29%3B%0A%09%09%09%09if%20%28e.getClickCount%28%29%3D%3D2%20%29%0A%09%09%09%09%7B%0A%09%09%09%09%09System.out.println%28%22%u53CC%u51FB%u4E86%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%09public%20void%20mouseEntered%28MouseEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.out.println%28%22%u8FDB%u5165%22+entercount++%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09//%u952E%u76D8%u4E8B%u4EF6%2CKeyListener%2C%u6709%u9002%u914D%u5668KeyAdapter%0A%09%09bu.addKeyListener%28new%20KeyAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20keyPressed%28KeyEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09if%28e.isControlDown%28%29%20%26%26%20e.getKeyCode%28%29%3D%3DKeyEvent.VK_ENTER%29%0A%09%09%09%09%7B%0A%09%09%09%09%09System.out.println%28%22ctrl%20enter%20run%22%29%3B%09%0A%09%09%09%09%7D%0A%09%09%09%09System.out.println%28KeyEvent.getKeyText%28e.getKeyCode%28%29%29+%22%20%20...%20%20%22+e.getKeyCode%28%29%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09te.addKeyListener%28new%20KeyAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20keyPressed%28KeyEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09int%20code%20%3D%20e.getKeyCode%28%29%3B%0A%09%09%09%09//%u5728%u6587%u672C%u6846%u4E2D%u8F93%u5165%u6570%u5B57%2C%u5B57%u6BCD%u4E0D%u8BA9%u8FDB%2C%u4E14%u63D0%u793A%u975E%u6CD5%0A%09%09%09%09if%20%28%21%28code%3E%3DKeyEvent.VK_NUMPAD0%20%26%26%20code%3C%3DKeyEvent.VK_NUMPAD9%29%29%0A%09%09%09%09%7B%0A%09%09%09%09%09e.consume%28%29%3B//void%20consume%28%29%3A%20%u4F7F%u7528%u6B64%u4E8B%u4EF6%uFF0C%u4EE5%u4FBF%u4E0D%u4F1A%u6309%u7167%u9ED8%u8BA4%u7684%u65B9%u5F0F%u7531%u4EA7%u751F%u6B64%u4E8B%u4EF6%u7684%u6E90%u4EE3%u7801%u6765%u5904%u7406%u6B64%u4E8B%u4EF6%u3002%20%0A%09%09%09%09%09System.out.println%28%22%u975E%u6CD5%u6570%u636E%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20%0A%09%7B%0A%09%09FrameDemo%20f%20%3D%20new%20FrameDemo%28%29%3B%0A%09%7D%0A%7D%0A%60%60%60%0A%0A---%0A%0A**GUI%u7EC3%u4E60**%0A%3E%u5728%u6587%u672C%u6846%u8F93%u5165%u76EE%u5F55%2C%u70B9%u51FB%22%u8F6C%u5230%22%u6309%u94AE%2C%u5C06%u8BE5%u76EE%u5F55%u4E2D%u7684%u6587%u4EF6%u4E0E%u6587%u4EF6%u5939%u540D%u79F0%u5217%u5728%u4E0B%u9762%u7684%u6587%u672C%u533A%u57DF%u4E2D%0A%0A%60%60%60java%0Aimport%20java.awt.*%3B%0Aimport%20java.awt.event.*%3B%0Aimport%20java.io.*%3B%0Aclass%20FrameDemo2%20%0A%7B%0A%09private%20Frame%20fr%3B%0A%09private%20Button%20bu%3B%0A%09private%20TextField%20te%3B%0A%09private%20TextArea%20ta%3B%0A%09private%20Dialog%20di%3B%0A%09private%20Label%20la%3B%0A%09private%20Button%20okbut%3B%0A%09FrameDemo2%28%29%0A%09%7B%0A%09%09init%28%29%3B%0A%09%7D%0A%09public%20void%20init%28%29%0A%09%7B%0A%09%09fr%20%3D%20new%20Frame%28%22my%20awt%22%29%3B//%u521B%u5EFA%u4E00%u4E2A%u7A97%u4F53%09%09%0A%09%09te%20%3D%20new%20TextField%2840%29%3B%0A%09%09bu%20%3D%20new%20Button%28%22%u8F6C%u5230%22%29%3B%0A%09%09ta%20%3D%20new%20TextArea%2830%2C50%29%3B%0A%09%09di%20%3D%20new%20Dialog%28fr%2C%22%u4FE1%u606F%u63D0%u793A%22%2Ctrue%29%3B//%u521B%u5EFA%u4E00%u4E2A%u5BF9%u8BDD%u7A97%0A%09%09la%20%3D%20new%20Label%28%29%3B%0A%09%09okbut%20%3D%20new%20Button%28%22%u786E%u5B9A%22%29%3B//%u521B%u5EFA%u5BF9%u8BDD%u7A97%u7684%u6309%u94AE%0A%09%09fr.setBounds%28500%2C400%2C700%2C500%29%3B%0A%09%09fr.setLayout%28new%20FlowLayout%28%29%29%3B%0A%09%09di.setBounds%28600%2C500%2C300%2C200%29%3B//%u8BBE%u7F6E%u5BF9%u8BDD%u6846%u7684%u4F4D%u7F6E%2C%u5927%u5C0F%0A%09%09di.setLayout%28new%20FlowLayout%28%29%29%3B//%u8BBE%u7F6E%u5BF9%u8BDD%u6846%u7684%u6392%u5217%u7684%u65B9%u5F0F%0A%09%09fr.add%28te%29%3B%0A%09%09fr.add%28bu%29%3B%0A%09%09fr.add%28ta%29%3B%0A%09%09di.add%28la%29%3B//%u5C06%u6807%u7B7E%u52A0%u5165%u5BF9%u8BDD%u6846%0A%09%09di.add%28okbut%29%3B//%u5C06%u6309%u94AE%u52A0%u5165%u5BF9%u8BDD%u6846%0A%09%09myEvent%28%29%3B%0A%09%09fr.setVisible%28true%29%3B%0A%09%7D%0A%09public%20void%20myEvent%28%29%0A%09%7B%0A%09%09//%u7A97%u4F53%u4E8B%u4EF6%0A%09%09fr.addWindowListener%28new%20WindowAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20windowClosing%28WindowEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.exit%280%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09//%u9F20%u6807%u4E8B%u4EF6%2CMouseListener%u6709%u9002%u914D%u5668MouseAdapter%0A%09%09bu.addMouseListener%28new%20MouseAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20mouseClicked%28MouseEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09show%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09di.addWindowListener%28new%20WindowAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20windowClosing%28WindowEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09di.setVisible%28false%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09okbut.addMouseListener%28new%20MouseAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20mouseClicked%28MouseEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09di.setVisible%28false%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09//%u76F4%u63A5%u7528Enter%u952E%u5C31%u53EF%u4EE5%u76F4%u63A5%u6765%u4EE3%u66FF%u4E0A%u9762%u6309%u94AE%u7684%u529F%u80FD%0A%09%09te.addKeyListener%28new%20KeyAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20keyPressed%28KeyEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09if%20%28e.getKeyCode%28%29%3D%3DKeyEvent.VK_ENTER%29%0A%09%09%09%09%7B%0A%09%09%09%09%09show%28%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%0A%09%7D%0A%09//%u5C06%u67E5%u627E%u6587%u4EF6%u7684%u65B9%u6CD5%u5C01%u88C5%u5230%u4E00%u4E2A%u65B9%u6CD5%u91CC%2C%u4EE5%u65B9%u4FBF%u8C03%u7528%0A%09public%20void%20show%28%29%0A%09%7B%0A%09%09String%20dir%20%3D%20te.getText%28%29%3B%0A%09%09te.setText%28%22%22%29%3B%09%09%0A%09%09File%20f%20%3D%20new%20File%28dir%29%3B%0A%09%09if%20%28f.exists%28%29%20%26%26%20f.isDirectory%28%29%29%0A%09%09%7B%0A%09%09%09ta.setText%28%22%22%29%3B%0A%09%09%09String%5B%5D%20arr%20%3D%20f.list%28%29%3B%0A%09%09%09for%20%28String%20str%20%3A%20arr%29%0A%09%09%09%7B%0A%09%09%09%09ta.append%28str+%22%5Cr%5Cn%22%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09else%0A%09%09%7B%0A%09%09%09String%20msg%20%3D%20%22%u8F93%u5165%u7684%u5730%u5740%3A%22+dir+%22%u6709%u8BEF%2C%u8BF7%u91CD%u65B0%u8F93%u5165%22%3B%0A%09%09%09la.setText%28msg%29%3B%0A%09%09%09di.setVisible%28true%29%3B%0A%09%09%7D%0A%09%7D%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20%0A%09%7B%0A%09%09new%20FrameDemo2%28%29%3B%0A%09%7D%0A%7D%0A%0A%60%60%60%0A---%0A**%u6548%u679C%u56FE**%0A%21%5BAlt%20text%5D%28./1.jpg%29%0A%0A%0A%23%23%u83DC%u5355%u680F%u7684%u5E94%u7528%0A%60%60%60java%0A//%u83DC%u5355%u680F%u7684%u5E94%u7528%0A/*%0A%u5E26%u5305%u540D%u7F16%u8BD1%3Ajavac%20-d%20e%3A%5C%5C1%20MyMenuDemo.java%0A%u6253jar%u5305%3Ajar%20-cvf%20my.jar%20mymenu%0A%u5E26%u914D%u7F6E%u4FE1%u606F%3Ajar%20-cvfm%20my.jar%201.txt%20mymenu%0A*/%0Apackage%20mymenu%0Aimport%20java.awt.*%3B%0Aimport%20java.awt.event.*%3B%0Aimport%20java.io.*%3B%0Apublic%20class%20MyMenuDemo%20%0A%7B%0A%09private%20Frame%20fr%3B%0A%09private%20MenuBar%20mb%3B%0A%09private%20Menu%20me%2Csubme%3B%0A%09private%20MenuItem%20closemi%2Copenmi%2Csavemi%2Csubmi%3B%0A%09private%20FileDialog%20loaddia%2Csavedia%3B%0A%09private%20TextArea%20ta%3B%0A%09private%20File%20file%3B%0A%09MyMenuDemo%28%29%0A%09%7B%0A%09%09init%28%29%3B%0A%09%09myEvent%28%29%3B%0A%09%09fr.setVisible%28true%29%3B%0A%09%7D%0A%09private%20void%20init%28%29%0A%09%7B%0A%09%09fr%20%3D%20new%20Frame%28%22my%20awt%22%29%3B%0A%09%09//%u521B%u5EFA%u83DC%u5355%u680F%0A%09%09mb%20%3D%20new%20MenuBar%28%29%3B%0A%09%09//%u521B%u5EFA%u83DC%u5355%0A%09%09me%20%3D%20new%20Menu%28%22%u6587%u4EF6%22%29%3B%0A%09%09subme%20%3D%20new%20Menu%28%22%u5B50%u83DC%u5355%22%29%3B%0A%09%09closemi%20%3D%20new%20MenuItem%28%22%u9000%u51FA%22%29%3B%0A%09%09savemi%20%3D%20new%20MenuItem%28%22%u4FDD%u5B58%22%29%3B%0A%09%09openmi%20%3D%20new%20MenuItem%28%22%u6253%u5F00%22%29%3B%0A%09%09submi%20%3D%20new%20MenuItem%28%22%u5B50%u6761%u76EE%22%29%3B%0A%09%09loaddia%20%3D%20new%20FileDialog%28fr%2C%22%u6253%u5F00%22%2CFileDialog.LOAD%29%3B//%u521B%u5EFA%u4E00%u4E2A%u6587%u4EF6%u5BF9%u8BDD%u6846%0A%09%09savedia%20%3D%20new%20FileDialog%28fr%2C%22%u4FDD%u5B58%22%2CFileDialog.SAVE%29%3B%0A%09%09ta%20%3D%20new%20TextArea%28%29%3B%0A%0A%09%09fr.setBounds%28400%2C500%2C500%2C400%29%3B%09%09%0A%09%09fr.setMenuBar%28mb%29%3B//%u5728%u7A97%u4F53%u4E2D%u52A0%u5165%u83DC%u5355%u680F%0A%09%09fr.add%28ta%29%3B%0A%09%09%0A%09%09mb.add%28me%29%3B//%u83DC%u5355%u680F%u4E2D%u52A0%u5165%22%u6587%u4EF6%22%u83DC%u5355%0A%09%09%0A%09%09me.add%28subme%29%3B//%22%u6587%u4EF6%22%u83DC%u5355%u4E2D%u52A0%u5165%22%u5B50%u83DC%u5355%22%0A%09%09me.add%28openmi%29%3B//%22%u6587%u4EF6%22%u83DC%u5355%u4E2D%u52A0%u5165%22%u6253%u5F00%22%u6761%u76EE%0A%09%09me.add%28savemi%29%3B%0A%09%09me.add%28closemi%29%3B%0A%09%09%0A%09%09subme.add%28submi%29%3B//%22%u5B50%u83DC%u5355%22%u4E2D%u52A0%u5165%22%u5B50%u6761%u76EE%22%0A%09%7D%0A%09private%20void%20myEvent%28%29%0A%09%7B%0A%09%09fr.addWindowListener%28new%20WindowAdapter%28%29%0A%09%09%7B%0A%09%09%09public%20void%20windowClosing%28WindowEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.exit%280%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09openmi.addActionListener%28new%20ActionListener%28%29%0A%09%09%7B%0A%09%09%09public%20void%20actionPerformed%28ActionEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09loaddia.setVisible%28true%29%3B%0A%09%09%09%09String%20dir%20%3D%20loaddia.getDirectory%28%29%3B%0A%09%09%09%09String%20fi%20%3D%20loaddia.getFile%28%29%3B%0A%09%09%09%09if%20%28dir%3D%3Dnull%20%7C%7C%20fi%3D%3Dnull%29%0A%09%09%09%09%7B%0A%09%09%09%09%09return%3B%0A%09%09%09%09%7D%0A%09%09%09%09ta.setText%28%22%22%29%3B%0A%09%09%09%09File%20file%20%3D%20new%20File%28dir%2Cfi%29%3B%0A%09%09%09%09try%0A%09%09%09%09%7B%0A%09%09%09%09%09BufferedReader%20bufr%20%3D%20new%20BufferedReader%28new%20FileReader%28file%29%29%3B%0A%09%09%09%09%09String%20line%20%3D%20null%3B%0A%09%09%09%09%09while%20%28%28line%3Dbufr.readLine%28%29%29%21%3Dnull%29%0A%09%09%09%09%09%7B%0A%09%09%09%09%09%09ta.append%28line+%22%5Cr%5Cn%22%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%09bufr.close%28%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09catch%20%28IOException%20ex%29%0A%09%09%09%09%7B%0A%09%09%09%09%09throw%20new%20RuntimeException%28%22%u6253%u5F00%u5931%u8D25%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%09savemi.addActionListener%28new%20ActionListener%28%29%0A%09%09%7B%0A%09%09%09public%20void%20actionPerformed%28ActionEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09//%u8FD9%u91CC%u5982%u679C%u6587%u4EF6%u5DF2%u7ECF%u5B58%u5728%u4E86%2C%u5C31%u76F4%u63A5%u4FDD%u5B58%2C%u4E0D%u7528%u5F39%u51FA%u5BF9%u8BDD%u6846%0A%09%09%09%09if%20%28file%3D%3Dnull%29%0A%09%09%09%09%7B%0A%09%09%09%09%09savedia.setVisible%28true%29%3B%0A%09%09%09%09%09String%20dir%20%3D%20savedia.getDirectory%28%29%3B%0A%09%09%09%09%09String%20fi%20%3D%20savedia.getFile%28%29%3B%0A%09%09%09%09%09if%20%28dir%20%3D%3D%20null%20%7C%7C%20fi%20%3D%3D%20null%29%0A%09%09%09%09%09%7B%0A%09%09%09%09%09%09return%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%09file%20%3D%20new%20File%28dir%2Cfi%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09try%0A%09%09%09%09%7B%0A%09%09%09%09%09BufferedWriter%20bufw%20%3D%20new%20BufferedWriter%28new%20FileWriter%28file%29%29%3B%0A%09%09%09%09%09String%20str%20%3D%20ta.getText%28%29%3B%0A%09%09%09%09%09bufw.write%28str%29%3B%0A%09%09%09%09%09bufw.flush%28%29%3B%0A%09%09%09%09%09bufw.close%28%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09catch%20%28IOException%20ex%29%0A%09%09%09%09%7B%0A%09%09%09%09%09throw%20new%20RuntimeException%28%22%u4FDD%u5B58%u5931%u8D25%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%0A%09%09%7D%29%3B%0A%09%09closemi.addActionListener%28new%20ActionListener%28%29%0A%09%09%7B%0A%09%09%09public%20void%20actionPerformed%28ActionEvent%20e%29%0A%09%09%09%7B%0A%09%09%09%09System.exit%280%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20%0A%09%7B%0A%09%09new%20MyMenuDemo%28%29%3B%0A%09%7D%0A%7D%0A%0A%60%60%60%0A---%0A**%u6548%u679C%u56FE**%0A%0A%21%5BAlt%20text%5D%28./2.jpg%29%0A

 

转载于:https://www.cnblogs.com/RuntimExcep/p/7121308.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/892060
推荐阅读
相关标签
  

闽ICP备14008679号