菜单 java_java 菜单
繼承體系
MenuBar,Menu,MenuItem之間的關系:
先創建菜單條,再創建菜單,每一個菜單中建立菜單項。
也可以菜單添加到菜單中,作為子菜單。
通過setMenuBar()方法,將菜單添加到Frame中。
package june610;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//最后導出jar包,用eclipse,必須要指定main函數!!不能直接點擊finished!!!
/**
* 菜單的結構MenuBar(相當于一個環境,f.set、、)
*? -->Menu(菜單,m.add、、可以添加自己,也可以添加Item)
*? -->MenuItem(條目 )
*/
class MyMenuDemo{
private Frame f;//首先聲明對象的好處,全局可以調用!
private MenuBar mb;
private Menu m,subm;
private MenuItem mi,close,save,open;
private FileDialog openDia,saveDia;
private TextArea ta;
private File file;
MyMenuDemo(){
f = new Frame("我的電腦");
f.setBounds(400, 150, 500, 500);
//備注:此時沒有設置布局管理器類型(因為不設置的話下面的TextArea會很爽!)
mb = new MenuBar();
m = new Menu("文件");
save = new MenuItem("保存");
open = new MenuItem("打開");
subm = new Menu("子菜單");
close = new MenuItem("退出");
mi = new MenuItem("子菜單2");
openDia = new FileDialog(f, "我的打開", FileDialog.LOAD);//加載
saveDia = new FileDialog(f, "我的保存", FileDialog.SAVE);//保存
ta = new TextArea();
f.setMenuBar(mb);//添加
mb.add(m);
subm.add(mi);
m.add(subm);
m.add(open);
m.add(save);
m.add(close);
f.add(ta);
f.setVisible(true);
init();
}
public? void init(){
//打開文件,彈出對話框
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openDia.setVisible(true);
String path = openDia.getDirectory();
String name = openDia.getFile();
//ta.append(path+"-----"+name+"\n");
if(path==null || name==null)
return ;
ta.setText("");//每次開始都清空
file = new File(path, name);
try {
BufferedReader br = new BufferedReader(new FileReader(file));//緩沖流
String line = null;
while((line = br.readLine()) != null){
ta.append(line+"\n");
}
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
//保存文件,彈出對話框!
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//注意問題:只有文件第一次保存(不存在)的時候才需要你去彈出對話框,以后只保存,不彈出!
if(file == null){
saveDia.setVisible(true);//不存在才彈,創建文件
String path = saveDia.getDirectory();
String name = saveDia.getFile();
if(name == null || path == null)
return;
//目錄和名字正確,但是文件不存在,就新建一個文件!
file = new File(path,name);
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String s = ta.getText();
bw.write(s);
bw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
}
public class MenuDemo {
public static void main(String[] args) {
new MyMenuDemo();
}
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的菜单 java_java 菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滑坡泥石流的防御措施_滑坡泥石流防御
- 下一篇: java corepoolsize_理解