GUI(三)一个菜单的程序
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的默認(rèn)布局管理器是BorderLayout()
??? f.setSize(600,400);
??? f.setLocation(100,100);
???
??? final JTextArea tf=new JTextArea(); //增加一個(gè)文本域,將下面打開的文件,讀進(jìn)去
???????????????????????????????????
??? JScrollPane scrollPane=new JScrollPane(tf,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
?????????????????????????????????????? //給文本框加上滾動(dòng)條
??? f.add(scrollPane,"Center"); //把帶滾動(dòng)條的文本框加到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(){? //點(diǎn)Open時(shí),設(shè)置一個(gè)打開對話框
???????? 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(){? //設(shè)置Exit的監(jiān)聽器,當(dāng)點(diǎn)Exit時(shí)退出
???????? 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()用于設(shè)置菜單欄
?? f.setVisible(true);
??
?}
}
?
---------------------------------------------------------------------------------------------------------------------------------
Component 一個(gè)組件類,是所有java的圖形界面組件的抽象基類它派生的有Container容器類
????????? 一個(gè)容器對象是可以容納其它組件的組件
????????? Container派生一個(gè)類Window窗口類,Window派生一個(gè)Frame框架窗口
經(jīng)驗(yàn):在用JBuilder時(shí),如果工程目錄有空格,編譯時(shí)經(jīng)常出現(xiàn)一些問題
//在awt包中修改按鈕上的內(nèi)容
btn.addActinListener(new ActionListener){
?? public void actionPerformed(ActionEvent e)
?? { ((Button)e.getSource()).setLabel("aa");? //getSource()方法,可以獲得事件原
?? }
}
菜單
菜單欄的類MenuBar
菜單的類Menu
菜單項(xiàng)的類MenuItem
創(chuàng)建文件對話框用類 FileDialog
??? FileDialog(Frame parent) //Frame parent為對話框的父框架
FileDialog(Frame parent,String title)
??? FileDialog(Frame parent,String title,int mode) //mode 為FileDialog.LOAD為打開對話框,
???????????????????????????????????????????????????? 為FileDialog.SAVA是保存對話框
也可以調(diào)用setMode()設(shè)置對話框是打開對話框,還是關(guān)閉對話框 ????
???????????????? 在FileDialog有一個(gè)方法getFile()獲取打開的文件名
?????????????????????????? 還有一個(gè)方法getDirectory()返回當(dāng)前文件所在目錄
?? Choice 下拉列表框
?JFrame 的方法 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 設(shè)置缺省的關(guān)閉操作
???????????????? static int EXIT_ON_CLOSE? 退出應(yīng)用程序后的默認(rèn)窗口關(guān)閉操作。?
??
?????????? 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()用于設(shè)置菜單欄
?? f.setVisible(True);
?}
}
?
總結(jié)
以上是生活随笔為你收集整理的GUI(三)一个菜单的程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中文乱码的解决
- 下一篇: 编写多线程Java应用程序常见问题