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的默认布局管理器是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);
}
}
总结
以上是生活随笔为你收集整理的GUI(三)一个菜单的程序的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java中文乱码的解决
- 下一篇: 关于java的对象数组