BookManagerFrame代码:
/**
* @(#)BookManagerFrame.java
* JFC BookManager application
* @author canglang
* @version 1.00 2007/3/9
*/
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BookManagerFrame extends JFrame {
static JMenu MenuSystem,UserManager,ReaderManager,BookManager,Borrow,Return,AllInfo,Help;
static JMenuItem ItemUserAdd,ItemUserDel,DepManager;
static JRadioButton metalbutton,motifbutton,windowsbutton;
[color="#FF0000"]
//××××××××××××××××××××××××××××××××××××××××××××××
//此处 JMenuBar申明为static出现问题,改为private则正常。
static JMenuBar menuBar = new JMenuBar();
//××××××××××××××××××××××××××××××××××××××××××××××
[/color]
public BookManagerFrame() {
//系统管理
MenuSystem = new JMenu("系统管理");
MenuSystem.addSeparator();
JMenuItem userLogin=new JMenuItem("更换用户");
userLogin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Object[] options = { "更换用户", "取 消" };
int a=JOptionPane.showOptionDialog(null,"确定要 更换用户 吗?"
,"更 换 用 户",JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options[0]);
if(a==0){
UserLogin Login=new UserLogin();
BookManagerFrame.this.dispose();
}
}});
MenuSystem.add(userLogin);
MenuSystem.addSeparator();
JMenuItem ItemExit = new JMenuItem("退出");
ItemExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Object[] options = { "退 出", "返 回" };
int a=JOptionPane.showOptionDialog(null,"确定要 退出系统 吗?"
,"退 出 系 统",JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options[0]);
if(a==0){
System.exit(0);
}
}});
MenuSystem.add(ItemExit);
menuBar.add(MenuSystem);
//读者管理
ReaderManager=new JMenu("读者管理");
JMenuItem ItemReaderAdd=new JMenuItem("添加读者");
JMenuItem ItemReaderUpdata=new JMenuItem("修改读者信息");
JMenuItem ItemReaderDel=new JMenuItem("删除读者");
ReaderManager.add(ItemReaderAdd);
ReaderManager.add(ItemReaderUpdata);
ReaderManager.add(ItemReaderDel);
menuBar.add(ReaderManager);
//图书管理
BookManager=new JMenu("图书管理");
JMenuItem ItemBookAdd=new JMenuItem("添加图书");
JMenuItem ItemBookUpdata=new JMenuItem("修改图书信息");
JMenuItem ItemBookDel=new JMenuItem("删除图书");
BookManager.add(ItemBookAdd);
BookManager.add(ItemBookUpdata);
BookManager.add(ItemBookDel);
menuBar.add(BookManager);
//借书管理
Borrow=new JMenu("借书管理");
JMenuItem ItemBorrow=new JMenuItem("借书");
Borrow.add(ItemBorrow);
menuBar.add(Borrow);
//还书管理
Return=new JMenu("还书管理");
JMenuItem ItemReturn=new JMenuItem("还书");
Return.add(ItemReturn);
menuBar.add(Return);
//信息查询
AllInfo=new JMenu("信息浏览");
JMenuItem ItemBook=new JMenuItem("图书列表");
JMenuItem ItemReader=new JMenuItem("读者列表");
AllInfo.add(ItemBook);
AllInfo.add(ItemReader);
menuBar.add(AllInfo);
//帮助
Help=new JMenu("帮助");
JMenuItem ItemHelp=new JMenuItem("帮助主题");
JMenuItem ItemAbout=new JMenuItem("关 于");
Help.add(ItemHelp);
Help.addSeparator();
Help.add(ItemAbout);
menuBar.add(Help);
JLabel label = new JLabel(new ImageIcon("bg.jpg"));
add(label);
setTitle("图书借阅管理系统");
setJMenuBar(menuBar);
setSize(new Dimension(800, 600));
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
// Add window listener.
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
}
}
UserLogin代码:
/**
* @(#)UserLogin.java
*
* JFC BookManager application
* @用户登录
* @author canglang
* @version 1.00 2007/2/9
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class UserLogin extends JFrame {
static JTextField jTextFiledusername;
static JPasswordField jPasswordold;
static BookManagerFrame myMain;
public UserLogin() {
add(new JLabel("用 户 名"));
jTextFiledusername=new JTextField(16);
add(jTextFiledusername);
add(new JLabel("密 码"));
jPasswordold=new JPasswordField(16);
jPasswordold.setEchoChar('★');
add(jPasswordold);
JButton jButtonOK=new JButton("确定");
add(jButtonOK);
JButton jButtonCancel=new JButton("取消");
add(jButtonCancel);
jButtonOK.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
myMain=new BookManagerFrame();
UserLogin.this.dispose();
}});
jButtonCancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}});
setTitle("用户登录");
setSize(new Dimension(300,250));
setLocationRelativeTo(null);
setLayout(new FlowLayout(FlowLayout.CENTER,32,35));
setResizable(false);
setVisible(true);
// Add window listener.
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
}
public static void main (String[] args) {
new UserLogin();
}
}
BookManagerFrame中的JMenuBar申明为static时,在系统中执行"更换用户"操作重新登陆后菜单项会重叠出现!~
若将JMenuBar申明为private,则一切正常!~
自己查了书,还是对static的作用不太清楚,有高手给个实例讲解一下!~
谢了~
[此贴子已经被作者于2007-3-19 19:36:13编辑过]