#include iostream
创新互联公司总部坐落于成都市区,致力网站建设服务有网站设计、成都网站设计、网络营销策划、网页设计、网站维护、公众号搭建、成都小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
#include string //C++磁盘操作头文件
#include istream
#include fstream
#include iomanip//自定义输出宽度
using namespace std;
struct Book //结构类型
{
string bookname;//书名
string author;//作者名
Book *next;
};
class BookList
{
public:
BookList(){first=new Book;first-next=NULL;}
int NewBook();
void SOldBook();
void testread();
void testwrite();
void DisplayBook();
~BookList();
private:
Book *first;
int j;
};
int BookList::NewBook()
{
Book *s;s=new Book; //为插入的新书申请结点
Book *q;q=new Book;
Book *p;p=new Book;
cout"输入新书书名:";
cins-bookname;
cout"输入作者:";
cins-author;
p=first;q=first; //建立链表
if(first-next==NULL)//如果原链表为空,把新书的结点插入到链表中
{
first-next=s; //头插法
s-next=NULL;
}
else{
while(p-next-booknames-bookname)//按书名排序插入
{
p=p-next;
if(p-next==NULL)break;
}
s-next=p-next;
p-next=s;
}
return 1;
}
void BookList::SOldBook() //查询
{
Book *s;s=new Book;
Book *p;p=new Book;
cout"输入你要查询的书名:";
cins-bookname;
p=first-next;
while(p-bookname!=s-bookname)
{
p=p-next;//接着查找下一个结点
if(p==NULL)break;
}
if(p==NULL)
cout"你所查询的书没找到!"endl;
else
cout"找到:《"p-bookname"》 "p-authorendl;
}
void BookList::testread()
{
ifstream in;j=0;//读出文件流
in.open("BookList.txt",ios::in);//以读的形式打开原文件
if(!in)
{
cerr"错误!不能打开文件!";
exit(1);
}
Book *q;q=new Book;
Book *p;p=new Book;
p=first;
cout"从BookList.txt中读出已有图书如下:"endl;
while(!in.eof())//判断文件是否为空
{
inq-booknameq-author;//从文件里面读到链表
coutq-bookname" "q-authorendl;
j++;
p-next=q;
p=q;
q-next=new Book;
q=q-next;
}
p-next=NULL;
cout"共有图书"j"本"endlendl;
in.close();
}
void BookList::DisplayBook()
{
j=0;
cout"本馆现有书籍有:"endl;
Book *p;p=new Book;
p=first-next;
while(p!=NULL) //输出链表中的元素
{
coutp-bookname" "p-authorendl;
p=p-next;
j++;
}
cout"共有图书"j"本"endl;
}
void BookList::testwrite()
{
ofstream out; //写入文件流
out.open("BookList.txt",ios::out);
if(!out)
{
cerr"错误!不能打开文件!";
exit(1);
}
Book *p;p=new Book;
for(p=first-next;p!=NULL;p=p-next)
{
outp-bookname'\t'p-authorendl; //把链表中的元素写到文件中
}
out.close();
}
BookList::~BookList() //析构函数
{
Book *p;p=new Book;
Book *q;q=new Book;
p=first-next;
while(p)
{
q=p;
p=p-next;
delete q;
}
}
void main()
{
char s;
int i,k,count=0;
BookList L; //定义对象
L.testread(); //把文件中的内容读到链表中
while(1)
{
char *menu[]={"输入新书","查询旧书","显示所有图书","退出",""}; //字符串指针数组
for(i=0;menu[i][0]!='\0';i++)
couti+1"、 "menu[i]endl;
cink;
switch(k)
{
case 1:count=L.NewBook();break;
case 2:L.SOldBook();break;
case 3:L.DisplayBook();break;
default:if(k!=4)cout"输入错误!"endl;break;
}
if(k==4)
{ if(count)
{ cout"修改后的BookList.txt未保存,是否保存?(y/n):";
cins;
if(s=='y')
L.testwrite();
}
break;
}
}
}
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Test_11 extends Frame implements ActionListener{ /**
* @param args
*/
MenuBar mb = null;
Menu m = null;
MenuItem mi = null; public Test_11() {
this.setBounds(100, 100, 400, 300);
this.setVisible(true);
mb = new MenuBar();
m = new Menu("文件");
mi = new MenuItem("打开");
mi.setShortcut(new MenuShortcut(KeyEvent.VK_O));
m.add(mi);
mb.add(m);
setMenuBar(mb);
mi.addActionListener(this);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Test_11();
} @Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}}
希望有用吧
package mm;
import java.io.*;
import java.awt.*;
import javax.swing.*;
public class HelloWorld {
public static void main(String[] args){
JFrame w=new JFrame("SKH");
Container con=w.getContentPane();
//Color
con.setBackground(Color.pink);
//Location
w.setBounds(60, 100, 388, 308);
//可见性
w.setVisible(true);
//单击右上角容器的行为
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建菜单项
JMenuBar menubar=new JMenuBar();
JMenu menu,submenu;
JMenuItem a,b;
menu=new JMenu("菜单");
submenu=new JMenu("子菜单");
a=new JMenuItem("菜单项1");
b=new JMenuItem("菜单项2");
menu.add(a);
//添加分割符;
menu.addSeparator();
menu.add(b);
menu.addSeparator();
menu.add(submenu);
submenu.add(new JMenuItem("QWQ"));
menubar.add(menu);
w.setJMenuBar(menubar);
}
}
public static void main ( String args[])
{
new MenuTest().setVisible(true);
}
}
不要写在另一个方法内。
另外,是这个名称的
PopupMenu pop;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMenu extends JFrame{
JMenuBar jmbar=new JMenuBar();
JMenu jmenu=new JMenu("颜色");
JMenuItem jmt1=new JMenuItem("红色"),
jmt2=new JMenuItem("黄色"),
jmt3=new JMenuItem("蓝色");
JPanel jp=new JPanel();
MyMenu(){
setTitle("菜单测试");
setSize(400,300);
setJMenuBar(jmbar);
jmbar.add(jmenu);
jmenu.add(jmt1);
jmenu.add(jmt2);
jmenu.add(jmt3);
add(jp);
jmt1.addActionListener(new MenuAction(this));
jmt2.addActionListener(new MenuAction(this));
jmt3.addActionListener(new MenuAction(this));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyMenu();
}
}
class MenuAction implements ActionListener{
MyMenu m;
MenuAction(MyMenu m){
this.m=m;
}
public void actionPerformed(ActionEvent e){
String color=e.getActionCommand();
if(color=="红色")m.jp.setBackground(Color.red);
else if(color=="黄色")m.jp.setBackground(Color.yellow);
else if(color=="蓝色")m.jp.setBackground(Color.blue);
}
}
不知道你要什么事件代码,我写了个比较简单的你看适合不。
给你个小例子,已经添加注释了。自己运行下看看效果,满意的话记得结贴子!
import java.awt.BorderLayout;
import java.awt.CheckboxMenuItem;
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;
public class TestMenu extends Frame implements ActionListener{
TextArea ta; //文本区
MenuBar mb; //MenuBar 类封装绑定到框架的菜单栏的
Menu mnFile,mnEdit,mnFormat,mnHelp; //从菜单栏部署的下拉式菜单组件
MenuItem miNew,miOpen,miSave,miSaveAs,miExit,miFont; //菜单中的所有项必须属于类 MenuItem 或其子类之一
CheckboxMenuItem miBinary; //一个可包括在菜单中的复选框
public TestMenu(){
super("记事本"); //调用父类构造方法
ta = new TextArea("",20,20); //新建文本区,第一个参数是默认文本,第二个参数是行数,第三个是列数
/*
* BorderLayout边框布局
* 添加文本区到Frame,BorderLayout.CENTER是居中位置
* */
add(ta,BorderLayout.CENTER);
mb = new MenuBar(); //创建菜单栏对象
/*
* 创建菜单,指定菜单名
* */
mnFile= new Menu("文件");
mnEdit= new Menu("编辑");
mnFormat= new Menu("格式");
mnHelp= new Menu("帮助");
/*
* 创建子菜单,并指定名称
* */
miNew= new MenuItem("新建");
miOpen= new MenuItem("打开");
miSave= new MenuItem("保存");
miSaveAs= new MenuItem("另存为");
miExit= new MenuItem("退出");
miExit.addActionListener(this); //为退出菜单添加监听
/*
* 添加上面创建的子菜单到文件菜单下
* */
mnFile.add(miNew);
mnFile.add(miOpen);
mnFile.add(miSave);
mnFile.add(miSaveAs);
mnFile.addSeparator(); //将一个分隔线或连字符添加到菜单的当前位置
mnFile.add(miExit);
miBinary= new CheckboxMenuItem("二进制"); //创建在复选框的子菜单
miFont= new MenuItem("字体"); //创建子菜单
/*
* 添加miBinary、miFont两个子菜单到mnFormat(格式)下
* */
mnFormat.add(miBinary);
mnFormat.add(miFont);
/*
* 将文件、编辑、格式、帮助添加到菜单栏
* */
mb.add(mnFile);
mb.add(mnEdit);
mb.add(mnFormat);
mb.add(mnHelp);
setMenuBar(mb); //添加菜单栏到Frame
/*
* 关闭窗口时,关闭运行成语
* */
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String args[]){
TestMenu tm=new TestMenu();
tm.setSize(300,200); //设置窗体的宽、高
tm.setLocation(300,100); //将组件移到新位置Component类方法
tm.setVisible(true); //设置显示窗体,true为显示,false为隐藏
}
/**
* 监听事件,实现ActionListener接口的actionPerformed方法
*/
public void actionPerformed(ActionEvent e){
String s = e.getActionCommand(); //获取选中菜单的名称
System.out.println(s);
if(s.equals("退出")){
System.exit(0); //停止运行程序
}
}
}