我用以下方法将编译好的Java 类文件进行打包 有一个小模块不能运行 怎样解决?????
编译好JAVA文件后:(假设是A.class,B.class)
首先你要写一个清单文件example.mf
Manifest-Version: 1.0
Main-Class: A
Created-By: 1.2.2(Sun Microsystems Inc.):
注意冒号后的空格,不可少。
在CLASS目录下运行:jar cfm example.jar example.mf A.class B.class
运行后就有一个JAR文件生成,可以直接打开了
如果还不够方便就写个批处理文件example.bat
javaw -jar example.jar
运行后你会发现有个DOS窗口会启动,如果你想让它在启动后自动关闭可以这样写:
start javaw -jar example.jar//这一模块代码如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.table.*;
import java.util.Vector;public class BookList extends JFrame implements ActionListener {
DataBaseManager db = new DataBaseManager();
ResultSet rs;
Container c;
JPanel panel1, panel2, panel3;
JLabel BookNameLabel, WriterLabel, PriceLabel;
JTextField BookNameTextField, WriterTextField, PriceTextField;
JButton SearchBtn, ExitBtn;
JTable table;
DefaultTableModel defaultModel = null;/*
 * 这是 TableModel 的一个实现,它使用一个 Vector
 * 来存储单元格的值对象, 该 Vector 由多个 Vector
 * 组成。
 */ public BookList() {
super("图书资料信息一览");
c = getContentPane();
c.setLayout(new BorderLayout());
BookNameLabel = new JLabel("图书名称", JLabel.CENTER);
BookNameLabel.setFont(new java.awt.Font("Dialog", 1, 15));
WriterLabel = new JLabel("作者", JLabel.CENTER);
WriterLabel.setFont(new java.awt.Font("Dialog", 1, 15));
PriceLabel = new JLabel("单价", JLabel.CENTER);
PriceLabel.setFont(new java.awt.Font("Dialog", 1, 15));
BookNameTextField = new JTextField(15);
BookNameTextField.setFont(new java.awt.Font("Dialog", 1, 15));
WriterTextField = new JTextField(15);
WriterTextField.setFont(new java.awt.Font("Dialog", 1, 15));
PriceTextField = new JTextField(15);
PriceTextField.setFont(new java.awt.Font("Dialog", 1, 15));
SearchBtn = new JButton("搜索");
SearchBtn.setFont(new java.awt.Font("Dialog", 1, 15));
ExitBtn = new JButton("退出");
ExitBtn.setFont(new java.awt.Font("Dialog", 1, 15));
SearchBtn.addActionListener(this);
ExitBtn.addActionListener(this);
panel1 = new JPanel();
// panel1.setLayout(new GridLayout(2,2));
panel1.add(BookNameLabel);
panel1.add(BookNameTextField);
panel1.add(WriterLabel);
panel1.add(WriterTextField);
panel2 = new JPanel();
panel2.add(PriceLabel);
panel2.add(PriceTextField);
panel2.add(SearchBtn);
panel2.add(ExitBtn);
String[] name = { "图书编码", "书名", "作者", "出版社", "出版日期", "单价","购入时间","借否" };
String[][] data = new String[0][0];
defaultModel = new DefaultTableModel(data, name);/*
 * public
 * DefaultTableModel(Object[][]
 * data,Object[]
 * columnNames) 构造
 * DefaultTableModel,并通过将
 * data 和
 * columnNames 传递到
 * setDataVector
 * 方法来初始化该表。
 * Object[][]
 * 数组中的第一个索引是行索引,第二个索引是列索引。
 */
table = new JTable(defaultModel);/*
 * public JTable(TableModel dm)构造
 * JTable, 使用 dm
 * 作为数据模型、默认的列模型和默认的选择模型对其进行初始化。
 */
table.setPreferredScrollableViewportSize(new Dimension(800, 400));// 设置此表视口的首选大小。
        table.setDefaultRenderer(Object.class, new TableCellTextAreaRenderer());
        
JScrollPane s = new JScrollPane(table);/*
 * 提供轻量级组件的 scrollable 视图。
 * JScrollPane
 * 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。
 */
panel3 = new JPanel();
panel3.add(s);
c.add(panel1, BorderLayout.NORTH);
c.add(panel2, BorderLayout.CENTER);
c.add(panel3, BorderLayout.SOUTH);

} public void actionPerformed(ActionEvent e) {
if (e.getSource() == ExitBtn) {
db.closeConnection();
this.dispose();
} else if (e.getSource() == SearchBtn) {
// String strSQL = "select
// CarName,Maker,Address,madeDate,three_month_price,moretime_month_price,Com
// from cars";
String strsql = null;
if (BookNameTextField.getText().trim().equals("")
&& PriceTextField.getText().trim().equals("")
&& WriterTextField.getText().trim().equals("")) {
strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books ";
} else if (BookNameTextField.getText().trim().equals("")
&& WriterTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where Price like '%"
+ PriceTextField.getText().trim() + "%'";
} else if (BookNameTextField.getText().trim().equals("")
&& PriceTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where Writer like '%"
+ WriterTextField.getText().trim() + "%'";
} else if (PriceTextField.getText().trim().equals("")
&& WriterTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where BookName like '%"
+ BookNameTextField.getText().trim() + "%'";
} else if (BookNameTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where Writer like'%"
+ WriterTextField.getText().trim()
+ "%'and Price like'%"
+ PriceTextField.getText().trim()
+ "%'";
} else if (WriterTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where BookName like'%"
+ BookNameTextField.getText().trim()
+ "%'and Price like'%"
+ PriceTextField.getText().trim()
+ "%'";
} else if (PriceTextField.getText().trim().equals("")) { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where BookName like'%"
+ BookNameTextField.getText().trim()
+ "%'and Writer like'%"
+ WriterTextField.getText().trim()
+ "%'";
} else { strsql = "select Number,BookName,Writer,Press,Published,Price,BuyDate,Com from Books where BookName like'%"
+ BookNameTextField.getText().trim()
+ "%'and Writer like'%"
+ WriterTextField.getText().trim()
+ "%'and Price like'%"
+ PriceTextField.getText().trim()
+ "%'";
}
try {
// 首先删除table中的数据
int rowCount = defaultModel.getRowCount() - 1;// 取得table中的数据行
int j = rowCount;
for (int i = 0; i <= rowCount; i++) {
defaultModel.removeRow(j);// 删除rowCount行的数据;
defaultModel.setRowCount(j);// 重新设置行数;
j = j - 1;
}
rs = db.getResult(strsql); while (rs.next()) {
Vector v = new Vector();
v.addElement(rs.getString(1));
v.addElement(rs.getString(2));
v.addElement(rs.getString(3));
v.addElement(rs.getString(4));
v.addElement(rs.getString(5));
v.addElement(rs.getString(6));
v.addElement(rs.getString(7));
v.addElement(rs.getString(8));
//v.addElement(rs.getString(9));
defaultModel.addRow(v);
}
table.revalidate();// revalidate()支持推迟的自动布局。
table.setFont(new java.awt.Font("Dialog", 1, 15));
} catch (SQLException sql) {
System.out.println(sql.toString());
} catch (Exception ex) {
ex.toString();//
}
} }}
class TableCellTextAreaRenderer extends JTextArea implements TableCellRenderer {
    public TableCellTextAreaRenderer() {
        setLineWrap(true);//设置文本区的换行策略。
        setWrapStyleWord(true);//设置换行方式
    }    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        // 计算当下行的最佳高度
        int maxPreferredHeight = 0;
        for (int i = 0; i < table.getColumnCount(); i++) {
            setText("" + table.getValueAt(row, i));
            setSize(table.getColumnModel().getColumn(column).getWidth(), 0);
            maxPreferredHeight = Math.max(maxPreferredHeight, getPreferredSize().height);
        }        if (table.getRowHeight(row) != maxPreferredHeight)  // 少了这行则处理器瞎忙
            table.setRowHeight(row, maxPreferredHeight);        setText(value == null ? "" : value.toString());
        return this;
    }
}

解决方案 »

  1.   

    这种方法我也前几天学会的。那有没有直接把它生成exe的文件呢?
      

  2.   


    1楼的大哥,可是我用 javac 、java 运行主程序MainWindow 这一模块都能正常运行,打了Jar包单单这一模块点击 没反应,控制台也没错误提示,主程序也正常运行
      

  3.   

    这个没反应是什么个情况
    能不能具体描述下
    比如,你的代码中有new BookList这个对象
    之后setVisible(true)没反应?
      

  4.   

    if(e.getActionCommand() == "书库存储信息查询"){
    BookList BookListFrame=new BookList();
    Dimension FrameSize = BookListFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookListFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookListFrame.pack();
    BookListFrame.setVisible(true);
    //BookListFrame.setResizable(false);
    }
      

  5.   

    那就是你的main中和这个模块关联的控件的listener函数不对,你把启动这个控件的监听函数代码贴上来看看
      

  6.   

    现在的情况是:
     
    用javac、java命令行 运行程序没有任何问题我用上面那种方法打了Jar包以后,“BookListFrame.setVisible(true)”就不起作用了
      

  7.   

    你给的代码太少了,项目框架也没有,很多frame都不知道你怎么定义的,要不你就把项目发上来,要不你自己查书吧。如果其他的frame中BookListFrame.setVisible(true);都好使,那么就说明不是这个得问题,可能是我一开始猜测的问题,也可能是其他问题,我觉得非常像你没有写监听函数,不过代码不全我也不知道你怎么写的,我现在只能靠猜。其实你仔细看下书,这个问题也就2天就能解决。
      

  8.   


    框架如下:
    没有反应的模块在标题上
    import java.awt.*;//包含用于创建用户界面和绘制图形图像的所有类
    import java.awt.event.*;
    import javax.swing.*;
    public class MainWindow extends JFrame implements ActionListener{
    JPanel panel1;
    Container c;
    JMenuBar MenuB;//菜单栏的实现
    JLabel name=new JLabel();
    JMenu SystemMenu,BookMGRMenu,BorrowBookMenu,ReturnBookMenu,
    InfoBrowseMenu,UserMGRMenu;
    JMenuItem UserLoginMenuItem,UserAddMenuItem,UserDeleteMenuItem,
    ExitMenuItem,BookAddMenuItem,BookDeleteMenuItem,
    BorrowBookMenuItem,BorrowInfoMenuItem,ReturnBookMenuItem,ReturnInfoMenuItem,BookListMenuItem,
    BorrowBookListMenuItem,UserListMenuItem,HistoryMenuItem;
    JLabel titleLabel,AuthorLabel,DateLabel;
    public MainWindow(){
    super("图书资料管理系统");
                    //Font font1 = new Font("楷体_gb2312",Font.BOLD+Font.ITALIC,50);
    //系统管理菜单
    MenuB = new JMenuBar();
    SystemMenu =new JMenu("系统管理");
        SystemMenu.setFont(new java.awt.Font("Dialog", 1, 25));
        UserMGRMenu = new JMenu("用户管理");
        UserMGRMenu.setFont(new java.awt.Font("Dialog", 1, 18));
    UserLoginMenuItem = new JMenuItem("用户登录");
    UserLoginMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    UserAddMenuItem = new JMenuItem("添加用户");
    UserAddMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    UserDeleteMenuItem = new JMenuItem("删除用户");
    UserDeleteMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    ExitMenuItem = new JMenuItem("退出");
    ExitMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    SystemMenu.add(UserLoginMenuItem);
    UserMGRMenu.add(UserAddMenuItem);
    UserMGRMenu.add(UserDeleteMenuItem);
    SystemMenu.add(UserMGRMenu);
    SystemMenu.addSeparator();//将新分隔符追加到菜单的末尾
    SystemMenu.add(ExitMenuItem);
    UserLoginMenuItem.addActionListener(this);
    UserAddMenuItem.addActionListener(this);
    UserDeleteMenuItem.addActionListener(this);
    ExitMenuItem.addActionListener(this);
    MenuB.add(SystemMenu);
    // 书库管理菜单
    BookMGRMenu = new JMenu("书库管理");
        BookMGRMenu.setFont(new java.awt.Font("Dialog", 1, 25));
    BookAddMenuItem = new JMenuItem("添加图书");
    BookAddMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    BookDeleteMenuItem = new JMenuItem("删除图书");
    BookDeleteMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    BookMGRMenu.add(BookAddMenuItem);
    BookMGRMenu.add(BookDeleteMenuItem);
    BookAddMenuItem.addActionListener(this);
    //BookModifyMenuItem.addActionListener(this);
    BookDeleteMenuItem.addActionListener(this);
    MenuB.add(BookMGRMenu);
    // 借书管理菜单
    BorrowBookMenu = new JMenu("借书管理");
        BorrowBookMenu.setFont(new java.awt.Font("Dialog", 1, 25));
    BorrowBookMenuItem = new JMenuItem("图书出借");
    BorrowBookMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    BorrowBookMenuItem.addActionListener(this);
    BorrowBookListMenuItem = new JMenuItem("借阅信息");
    BorrowBookListMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    BorrowBookListMenuItem.addActionListener(this);
    BorrowBookMenu.add(BorrowBookMenuItem);
    BorrowBookMenu.add(BorrowBookListMenuItem);
    MenuB.add(BorrowBookMenu);
      

  9.   

    // 还书管理菜单
    ReturnBookMenu = new JMenu("还书管理");
        ReturnBookMenu.setFont(new java.awt.Font("Dialog", 1, 25));
    ReturnBookMenuItem = new JMenuItem("图书归还");
    ReturnBookMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    ReturnBookMenuItem.addActionListener(this);
    ReturnBookMenu.add(ReturnBookMenuItem);
    MenuB.add(ReturnBookMenu);
    //书库存储
    InfoBrowseMenu= new JMenu("书库信息");
        InfoBrowseMenu.setFont(new java.awt.Font("Dialog", 1, 25));
    BookListMenuItem=new JMenuItem("书库存储信息查询");
    BookListMenuItem.setFont(new java.awt.Font("Dialog", 1, 18));
    BookListMenuItem.addActionListener(this);
    InfoBrowseMenu.add(BookListMenuItem);
    MenuB.add(InfoBrowseMenu);
    // ****************************************
    setJMenuBar(MenuB);//设置此窗体的菜单栏
    titleLabel = new JLabel(new ImageIcon(".\\3.gif"));//背景
    c = getContentPane();
    c.setLayout(new BorderLayout());
    panel1 = new JPanel();
    panel1.setLayout(new BorderLayout());
    panel1.add(titleLabel, BorderLayout.CENTER);
    c.add(panel1, BorderLayout.CENTER);
    name.setForeground(Color.orange);
    name.setText("请先登陆");
    name.setFont(new java.awt.Font("Dialog", 1, 18));
    c.add(name, BorderLayout.NORTH);
    setBounds(160, 100, 600, 400);//(X,Y,Width,Height)
    setVisible(true);
    setResizable(false);
    // 设置初始功能
    UserMGRMenu.setEnabled(false);
    BookMGRMenu.setEnabled(false);
    BorrowBookMenu.setEnabled(false);
    ReturnBookMenu.setEnabled(false);
    InfoBrowseMenu.setEnabled(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand() == "用户登录") {
    UserLogin UserLoginFrame = new UserLogin(this);
    Dimension FrameSize = UserLoginFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();// Dimension
    // 类封装单个对象中组件的宽度和高度(精确到整数)。
    Point loc = getLocation();// 表示 (x, y) 坐标空间中的位置的点,以整数精度来指定。
    UserLoginFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    UserLoginFrame.pack();
          //UserLoginFrame.setBounds(200, 200, 300, 130);
    UserLoginFrame.setVisible(true);
    UserLoginFrame.setResizable(false); }else if (e.getActionCommand() == "添加用户") {
    UserAdd UserAddFrame = new UserAdd();
    Dimension FrameSize = UserAddFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    UserAddFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    UserAddFrame.pack();
          UserAddFrame.setBounds(200, 200, 330, 210);
    UserAddFrame.setVisible(true);
    UserAddFrame.setResizable(false);
    } else if (e.getActionCommand() == "退出") {
    this.dispose();
    System.exit(0);
    }else if (e.getActionCommand() == "删除用户") {
    UserDelete UserDeleteFrame = new UserDelete();
    Dimension FrameSize = UserDeleteFrame.getPreferredSize();// getPreferredSize()获得组件的首选大小。
    Dimension MainFrameSize = getSize();// Dimension类封装单个对象中组件的宽度和高度(精确到整数)。
    Point loc = getLocation();
    UserDeleteFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    UserDeleteFrame.pack();
          UserDeleteFrame.setBounds(200, 200, 330, 150);
    UserDeleteFrame.setVisible(true);
    UserDeleteFrame.setResizable(false);
    }else if(e.getActionCommand() == "添加图书"){
    BookAdd BookAddFrame = new BookAdd();
    Dimension FrameSize = BookAddFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookAddFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookAddFrame.pack();
              //BookAddFrame.setBounds(200, 200, 380, 300);
    BookAddFrame.setVisible(true);
    BookAddFrame.setResizable(false);
    }else if(e.getActionCommand() == "删除图书"){
    BookDel BookDelFrame=new BookDel();
    Dimension FrameSize = BookDelFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookDelFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookDelFrame.pack();
              BookDelFrame.setBounds(200, 200, 300, 150);
    BookDelFrame.setVisible(true);
    BookDelFrame.setResizable(false);
    }else if(e.getActionCommand() == "图书出借"){
    BorrowBook BorrowBookFrame=new BorrowBook();
    Dimension FrameSize = BorrowBookFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BorrowBookFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BorrowBookFrame.pack();
              BorrowBookFrame.setBounds(200, 200, 320, 230);
    BorrowBookFrame.setVisible(true);
    BorrowBookFrame.setResizable(false);
    }else if(e.getActionCommand() == "借阅信息"){
    BorrowList BorrowListFrame=new BorrowList();
    Dimension FrameSize = BorrowListFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BorrowListFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BorrowListFrame.pack();
              BorrowListFrame.setBounds(200, 200, 530, 250);
    BorrowListFrame.setVisible(true);
    //BorrowListFrame.setResizable(false);
    }
    else if(e.getActionCommand() == "图书归还"){
    ReturnBook ReturnBookFrame=new ReturnBook();
    Dimension FrameSize = ReturnBookFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    ReturnBookFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    ReturnBookFrame.pack();
              ReturnBookFrame.setBounds(200, 200, 350, 180);
    ReturnBookFrame.setVisible(true);
    ReturnBookFrame.setResizable(false);
    }
    else if(e.getActionCommand() == "书库存储信息查询"){
    BookList BookListFrame=new BookList();
    Dimension FrameSize = BookListFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookListFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookListFrame.pack();
    BookListFrame.setVisible(true);
    //BookListFrame.setResizable(false);
    }
    }
    // 设置登录用户的权限
    public void setEnable(String powerType) {
    if (powerType.trim().equals("系统管理员")) {
    UserMGRMenu.setEnabled(true);
    BookMGRMenu.setEnabled(true);
    BorrowBookMenu.setEnabled(true);
    ReturnBookMenu.setEnabled(true);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(true);
    //HistoryMenuItem.setEnabled(true);
    name.setText(powerType.trim());
    } else if (powerType.trim().equals("书库管理员")) { name.setText(powerType.trim());
    UserMGRMenu.setEnabled(false);
    BookMGRMenu.setEnabled(true);
    BorrowBookMenu.setEnabled(false);
    ReturnBookMenu.setEnabled(false);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(false);
    //HistoryMenuItem.setEnabled(false);
    } else if (powerType.trim().equals("图书管理员")) { name.setText(powerType.trim());
    UserMGRMenu.setEnabled(false);
    BookMGRMenu.setEnabled(false);
    BorrowBookMenu.setEnabled(true);
    ReturnBookMenu.setEnabled(true);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(false);
    //HistoryMenuItem.setEnabled(false);
    } } public static void main(String[] args) {
    MainWindow mainframe = new MainWindow();
    }
    }
      

  10.   

    你还是把项目发给我吧,你这个menuitem和上面的完全一样是复制,粘贴出来的,上面的都能运行这个就运行部了???光这么看代码找不出来,得用ide运行下看看
    (mail:[email protected])
      

  11.   

    佩服这些坚持使用swing做web项目开发的人
      

  12.   

    swing是做web项目的??? 别搞笑,好冷!!!
      

  13.   

    /bookmanage/src/MainWindow.java中的一段代码没有实现啊
    // 设置登录用户的权限
    public void setEnable(String powerType) {
    if (powerType.trim().equals("系统管理")) {
    UserMGRMenu.setEnabled(true);
    BookMGRMenu.setEnabled(true);
    BorrowBookMenu.setEnabled(true);
    ReturnBookMenu.setEnabled(true);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(true);
    //HistoryMenuItem.setEnabled(true);
    name.setText(powerType.trim());
    } else if (powerType.trim().equals("书库管理")) {name.setText(powerType.trim());
    UserMGRMenu.setEnabled(false);
    BookMGRMenu.setEnabled(true);
    BorrowBookMenu.setEnabled(false);
    ReturnBookMenu.setEnabled(false);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(false);
    //HistoryMenuItem.setEnabled(false);
    } else if (powerType.trim().equals("图书管理")) {name.setText(powerType.trim());
    UserMGRMenu.setEnabled(false);
    BookMGRMenu.setEnabled(false);
    BorrowBookMenu.setEnabled(true);
    ReturnBookMenu.setEnabled(true);
    InfoBrowseMenu.setEnabled(true);
    //UserListMenuItem.setEnabled(false);
    //HistoryMenuItem.setEnabled(false);
    }

    此处你只是用setEnabled是不能实现功能的,如果你要弹出frame就要像你第一个写的那样
    public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand() == "书库存储信息查询"){
    BookList BookListFrame=new BookList();
    Dimension FrameSize = BookListFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookListFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookListFrame.pack();
    BookListFrame.setVisible(true);
    //BookListFrame.setResizable(false);
    }
    如果你是想设置点选menuitem弹出frame就要给你的menuitem添加actionenvent事件,然后再事件中照着如上写的代码编辑。
    如果找你这么写,只有“书库存储信息查询”这一选项可以运行
      

  14.   


    我现在的情况就是“书库存储信息查询”这一选项打了Jar包后(运行example.jar)不能运行(我已经发过去了)但是用命令行 javac、java命令这一选项就可以运行,是不是example.mf这个文件写错了?
      

  15.   

    java运行jar包跟你程序有没有bug没有关系,如果你能在Eclipse里成功运行,那只是classpath路径之类的问题Swing确实比较老的UI技术了,现在做桌面应用还是SWT,JFace/RCP这些的天下
      

  16.   

    哦 我明白你说的意思了,等我再看看。现在java做c/s体系的是少之又少,只有不入流的公司才做,基本上都是ssh架构在做项目。
      

  17.   

    只是一个很小的改动,如下:public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand() == "书库存储信息查询"){
    BookList BookListFrame=new BookList();
    Dimension FrameSize = BookListFrame.getPreferredSize();
    Dimension MainFrameSize = getSize();
    Point loc = getLocation();
    BookListFrame.setLocation((MainFrameSize.width - FrameSize.width)
    / 2 + loc.x, (MainFrameSize.height - FrameSize.height) / 2
    + loc.y);
    BookListFrame.pack();
    BookListFrame.setVisible(true);
    //BookListFrame.setResizable(false);
    }将我标示的地方改为 BookListFrame=new BookList();,然后再MainWindow这个主类的成员变量声明中先声明,BookList BookListFrame;就可以再jar包中显示这一项了。这主要是组件重绘问题,我在此就不详细介绍了,只要记住最好不要在局部方法中声明组件就行。
      

  18.   

    public class MainWindow extends JFrame implements ActionListener{
    BookList BookListFrame;
    ...else if(e.getActionCommand() == "书库存储信息查询"){
    BookListFrame=new BookList();
    //BookList BookListFrame=new BookList();
    是不是在标注的地方声明呢,我按照你的意思改了,但还是没有反应,能不能把你改的给我发回一份?
      

  19.   

    我的意思是这项目做成web的更好, 非得用swing来做成客户端程序, 不累啊
      

  20.   

    mail:[email protected]你再发一份吧,我改完了把我的传给你。
      

  21.   

    你改完了之后再重新打jar包,我这运行是好使的。不行你就照着上面的mail给我发过来你的项目,你的那个我好像给删了。
      

  22.   

    我修改后运行的界面,如下:把你的邮箱地址发过来,我把改后的代码和jar包给你
      

  23.   

    饿,刚发完上面的就收到了你的email,下载bookmanage附件,里面有jar包和src项目文件。
      

  24.   

    把bookmanage导入到你的myeclipse中,然后重新打个jar包试试,在我机器上是好使得。