我想写一个菜单栏,代码写出来之后,编译没有错误,但是运行的时候不出界面,小弟百思不得其解啊!求各位大侠帮忙解决一下!不胜感激!
代码:package tjau.edu.cn;import java.awt.CheckboxMenuItem;
import java.awt.Container;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.PopupMenu;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;public class menu extends Frame{
private TextArea content;
private String filePath;
public void MyNotepad()
{
this.init();
}
private void init()
{
this.setTitle("My Text");
this.setBounds(200, 200, 450, 500);
this.createMeun();
this.createMainPanel();
this.createState();
this.addWindowListener(new MyWindowListenerss());
this.setVisible(true);
}
//创建状态栏
private void createState() {}
public static void main (String args[])
{
new menu();
}
//创建主内容面板
private void createMainPanel() {
content = new TextArea("",100,100,TextArea.SCROLLBARS_VERTICAL_ONLY);
//给它添加右键弹出式菜单
final PopupMenu popup = new PopupMenu();
popup.add(new MenuItem("剪切"));
popup.add(new MenuItem("复制"));
popup.add(new MenuItem("粘贴"));
content.add(popup);
content.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent event)
{
//单击的是鼠标右键
if(event.getButton() == MouseEvent.BUTTON3)
{
popup.show(content,event.getX(),event.getY());
}
}
});
this.add(content);
}
private void createMeun() {
MenuBar bar = new MenuBar();//创建一个菜单栏
this.setMenuBar(bar); //把菜单栏添加到窗口上
//创建各个菜单
Menu fileMenu = new Menu("文件(F)");
Menu editMenu = new Menu("编辑(E)");
Menu formatMenu = new Menu("格式(O)");
Menu viewMenu = new Menu("查看(V)");
Menu helpMenu = new Menu("帮助(H)");
bar.add(helpMenu);
bar.add(viewMenu);
bar.add(formatMenu);
bar.add(editMenu);
bar.add(fileMenu);
//创建文件菜单上的各个菜单项
MenuItem newItem = new MenuItem("新建(N)");
newItem.setShortcut(new MenuShortcut(KeyEvent.VK_N,false));
fileMenu.add(newItem);
MenuItem openItem = new MenuItem("打开(O)");
openItem.setShortcut(new MenuShortcut(KeyEvent.VK_O,false));
//文件的读取操作
openItem.addActionListener(new MyActionListener()
{
public void actionPerformed(ActionEvent args0)
{
FileDialog dialog = new FileDialog(new Frame(),"打开...",FileDialog.LOAD);
dialog.setVisible(true);
filePath = dialog.getDirectory() + dialog.getFile();
//用输入流来读取指定文件的内容,再添加到内容文本域
File file = new File(filePath);
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try
{
br = new BufferedReader(new FileReader(file));
String str = null;
while((str = br.readLine()) != null)
{
sb.append(str).append("\n");
}
//把从文件中读取到的内容添加到文本域中
content.setText(sb.toString());
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(br != null)
{
try
{
br.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}
});
fileMenu.add(openItem);
MenuItem saveItem = new MenuItem("保存(S)");
saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S,false));
fileMenu.add(saveItem);
MenuItem saveAsItem = new MenuItem("另存为(A)...");
fileMenu.add(saveAsItem);
//添加一个分隔符
fileMenu.addSeparator();
MenuItem exitItem = new MenuItem("退出(E)");
exitItem.setShortcut(new MenuShortcut(KeyEvent.VK_E,false));
fileMenu.add(exitItem);
//格式菜单中德复选菜单项
CheckboxMenuItem newLineItem = new CheckboxMenuItem("自动换行(W)",true);
formatMenu.add(newLineItem);
}
}
代码:package tjau.edu.cn;import java.awt.CheckboxMenuItem;
import java.awt.Container;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.PopupMenu;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;public class menu extends Frame{
private TextArea content;
private String filePath;
public void MyNotepad()
{
this.init();
}
private void init()
{
this.setTitle("My Text");
this.setBounds(200, 200, 450, 500);
this.createMeun();
this.createMainPanel();
this.createState();
this.addWindowListener(new MyWindowListenerss());
this.setVisible(true);
}
//创建状态栏
private void createState() {}
public static void main (String args[])
{
new menu();
}
//创建主内容面板
private void createMainPanel() {
content = new TextArea("",100,100,TextArea.SCROLLBARS_VERTICAL_ONLY);
//给它添加右键弹出式菜单
final PopupMenu popup = new PopupMenu();
popup.add(new MenuItem("剪切"));
popup.add(new MenuItem("复制"));
popup.add(new MenuItem("粘贴"));
content.add(popup);
content.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent event)
{
//单击的是鼠标右键
if(event.getButton() == MouseEvent.BUTTON3)
{
popup.show(content,event.getX(),event.getY());
}
}
});
this.add(content);
}
private void createMeun() {
MenuBar bar = new MenuBar();//创建一个菜单栏
this.setMenuBar(bar); //把菜单栏添加到窗口上
//创建各个菜单
Menu fileMenu = new Menu("文件(F)");
Menu editMenu = new Menu("编辑(E)");
Menu formatMenu = new Menu("格式(O)");
Menu viewMenu = new Menu("查看(V)");
Menu helpMenu = new Menu("帮助(H)");
bar.add(helpMenu);
bar.add(viewMenu);
bar.add(formatMenu);
bar.add(editMenu);
bar.add(fileMenu);
//创建文件菜单上的各个菜单项
MenuItem newItem = new MenuItem("新建(N)");
newItem.setShortcut(new MenuShortcut(KeyEvent.VK_N,false));
fileMenu.add(newItem);
MenuItem openItem = new MenuItem("打开(O)");
openItem.setShortcut(new MenuShortcut(KeyEvent.VK_O,false));
//文件的读取操作
openItem.addActionListener(new MyActionListener()
{
public void actionPerformed(ActionEvent args0)
{
FileDialog dialog = new FileDialog(new Frame(),"打开...",FileDialog.LOAD);
dialog.setVisible(true);
filePath = dialog.getDirectory() + dialog.getFile();
//用输入流来读取指定文件的内容,再添加到内容文本域
File file = new File(filePath);
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try
{
br = new BufferedReader(new FileReader(file));
String str = null;
while((str = br.readLine()) != null)
{
sb.append(str).append("\n");
}
//把从文件中读取到的内容添加到文本域中
content.setText(sb.toString());
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(br != null)
{
try
{
br.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}
});
fileMenu.add(openItem);
MenuItem saveItem = new MenuItem("保存(S)");
saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S,false));
fileMenu.add(saveItem);
MenuItem saveAsItem = new MenuItem("另存为(A)...");
fileMenu.add(saveAsItem);
//添加一个分隔符
fileMenu.addSeparator();
MenuItem exitItem = new MenuItem("退出(E)");
exitItem.setShortcut(new MenuShortcut(KeyEvent.VK_E,false));
fileMenu.add(exitItem);
//格式菜单中德复选菜单项
CheckboxMenuItem newLineItem = new CheckboxMenuItem("自动换行(W)",true);
formatMenu.add(newLineItem);
}
}
解决方案 »
- xfire client 的aegis绑定问题
- jsp连接数据库
- System.out.println("sdfasfsafsd");里面的输出在apache的哪里能找到?
- 在线文本编辑器缓存问题??
- FilterConfig关于权限过滤
- JAR文件反编译问题
- 如何将一字符型表达式(如:1+2-3*4+(5-6)/7*(8+9)+(10+11)/12)算出值来,不用javacc来作
- hibernate连接 ms sql jdbc驱动?
- 连接池工作机制是什么?怎么提高数据的访问速度的?
- 如果修改了 storm 的 spout 和 bolt 代码,就 kill 掉作业,重新提交吧。那么 kill 作业的时候如何做 cleanup 的工作呢?
- struts + jsp 显示中Tiles框架的问题
- 如何在使用java命令javaw时引用项目中包含的jar包
public void MyNotepad()
{
this.init();
}
改成:
public menu() {
this.init();
}
或者 public static void main(String args[]) {
new menu().MyNotepad();
}细心点啊