关闭

GUI(三)一个菜单的程序 

1365人阅读 评论(0) 收藏 举报

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class Aa
{ public static void main(String[] args)
  { final JFrame f=new JFrame("aa"); //JFrame的默认布局管理器是BorderLayout()
    f.setSize(600,400);
    f.setLocation(100,100);
   
    final JTextArea tf=new JTextArea(); //增加一个文本域,将下面打开的文件,读进去
                                   
    JScrollPane scrollPane=new JScrollPane(tf,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
                                       //给文本框加上滚动条
    f.add(scrollPane,"Center"); //把带滚动条的文本框加到JFrame上
     
    f.addWindowListener(new WindowAdapter(){
       public void windowClosing(WindowEvent e)
       { System.exit(0);
       }
   });


  
   
   JMenuBar mb=new JMenuBar();
  
   JMenu m1=new JMenu("File");
   JMenu m2=new JMenu("Edit");
  
   JMenuItem mi1=new JMenuItem("New");
   JMenuItem mi2=new JMenuItem("Open");
       mi2.addActionListener(new ActionListener(){  //点Open时,设置一个打开对话框
         public void actionPerformed(ActionEvent e)
         { FileDialog fd=new FileDialog(f,"Open File Dialog",FileDialog.LOAD);
           fd.setVisible(true);
          
           String strFile=fd.getDirectory()+fd.getFile();
           if(strFile!=null)
           { try{
               FileInputStream fis=new FileInputStream(strFile);
               StringBuffer s=new StringBuffer();
               int c;
               while((c=fis.read())!=-1)
               { s=s.append((char)c);
               }
               byte b[]=s.toString().getBytes("iso8859-1");
              
               tf.append(new String(b));
               fis.close();
             }
             catch(Exception ex)
             { ex.printStackTrace();
             }
           }
         }  
       });
   JMenuItem mi3=new JMenuItem("Save");
   JMenuItem mi4=new JMenuItem("Exit");
       mi4.addActionListener(new ActionListener(){  //设置Exit的监听器,当点Exit时退出
         public void actionPerformed(ActionEvent e)
         { System.exit(0);
         }  
       });
   JMenuItem mi5=new JMenuItem("Copy");
   JMenuItem mi6=new JMenuItem("Paste");
  
   m1.add(mi1);
   m1.add(mi2);
   m1.add(mi3);
   m1.add(mi4);
   m2.add(mi5);
   m2.add(mi6);
   mb.add(m1);
   mb.add(m2);
  
  
  
   f.setJMenuBar(mb); //setMenuBar()用于设置菜单栏
   f.setVisible(true);
  
 }
}

 

---------------------------------------------------------------------------------------------------------------------------------

Component 一个组件类,是所有java的图形界面组件的抽象基类它派生的有Container容器类
          一个容器对象是可以容纳其它组件的组件
          Container派生一个类Window窗口类,Window派生一个Frame框架窗口

经验:在用JBuilder时,如果工程目录有空格,编译时经常出现一些问题


//在awt包中修改按钮上的内容
btn.addActinListener(new ActionListener){
   public void actionPerformed(ActionEvent e)
   { ((Button)e.getSource()).setLabel("aa");  //getSource()方法,可以获得事件原
   }
}


菜单
菜单栏的类MenuBar
菜单的类Menu
菜单项的类MenuItem

创建文件对话框用类 FileDialog
    FileDialog(Frame parent) //Frame parent为对话框的父框架
  FileDialog(Frame parent,String title)
    FileDialog(Frame parent,String title,int mode) //mode 为FileDialog.LOAD为打开对话框,
                                                     为FileDialog.SAVA是保存对话框
         也可以调用setMode()设置对话框是打开对话框,还是关闭对话框     
                 在FileDialog有一个方法getFile()获取打开的文件名
                           还有一个方法getDirectory()返回当前文件所在目录
   Choice 下拉列表框

 JFrame 的方法 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 设置缺省的关闭操作
                 static int EXIT_ON_CLOSE  退出应用程序后的默认窗口关闭操作。 
  
           JFrame jf=new JFrame("aaa");
           jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


           
import java.awt.*;
import java.awt.event.*;
class aa
{ public static void main(String[] args)
  { Frame f=new Frame("aa")
    f.setSize(600,400);
    f.setLocation(100,100);
    f.addWindowListener(new WindowAdapter(){
       public void windowClosing(WindowEvent e)
       { System.exit(0);
       }
   });

   MenuBar mb=new MenuBar();
   Menu m1=new Menu("File");
   Menu m2=new Menu("Edit");
   MenuItem mi1=new MenuItem("New");
   MenuItem mi2=new MenuItem("Open");
   MenuItem mi3=new MenuItem("Save");
   MenuItem mi4=new MenuItem("Exit");
   MenuItem mi5=new MenuItem("Copy");
   MenuItem mi6=new MenuItem("Paste");
  
   m1.add(mi1);
   m1.add(mi2);
   m1.add(mi3);
   m1.add(mi4);
   m2.add(mi5);
   m2.add(mi6);
   mb.add(m1);
   mb.add(m2);
  
   f.setMenuBar(mb); //setMenuBar()用于设置菜单栏
   f.setVisible(True);
 }
}

 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1196417次
    • 积分:8886
    • 等级:
    • 排名:第2121名
    • 原创:120篇
    • 转载:222篇
    • 译文:1篇
    • 评论:142条
    最新评论