我写了图中标蓝的几行代码,然后运行主页面失败,就是我显示不出添加页面,而我需要写代码,然后运行主页面,在主页面里打开添加页面,在添加页面进行数据添加,但是运行失败,请问是什么原因?我应该如何修改?
这个报错是事件监听报错,应该是第二个图的监听事件代码导致的,看上去你要监听的是按钮点击事件,可以把ActionListener改成MouseAdapter试一下
JButton tianjia = new JButton("\u6DFB\u52A0");
tianjia.addMouseListener(new MouseAdapter() {
public void actionPerformed(MouseEvent arg0) {
//按钮逻辑代码
}
});
package page;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JDesktopPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JTable;
public class MainPage {
private JFrame frame;
private JMenuBar menuBar;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainPage window = new MainPage();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainPage() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("\u4E3B\u9875\u9762");
frame.setBounds(100, 100, 740, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
menuBar = new JMenuBar();
menuBar.setBackground(new Color(240, 240, 240));
menuBar.setBounds(0, 0, 714, 411);
frame.getContentPane().add(menuBar);
JMenu mnNewMenu = new JMenu("\u4EA7\u54C1\u7BA1\u7406");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("\u6DFB\u52A0\u7528\u6237");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//获取一个添加页面的对象
AddPage add = new AddPage();
//将桌面存在的内容都清理一遍
menuBar.removeAll();
//将页面加入到桌面面板
menuBar.add(add.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u67E5\u8BE2\u7528\u6237");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
SearchPage sp = new SearchPage();
//运行一次可以同时将添加页面和查询页面显示出来,新加页面之前把原有桌面
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_1);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("\u4FEE\u6539\u7528\u6237");
mntmNewMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
EditPage sp = new EditPage();
menuBar.removeAll();
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_2);
JMenuItem mntmNewMenuItem_3 = new JMenuItem("\u5220\u9664\u7528\u6237");
mntmNewMenuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DeleteUserPage sp = new DeleteUserPage();
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_3);
JDesktopPane desktopPane = new JDesktopPane();
desktopPane.setBackground(Color.LIGHT_GRAY);
desktopPane.setBounds(10, 22, 707, 430);
frame.getContentPane().add(desktopPane);
table = new JTable();
table.setBounds(0, 0, 1, 1);
frame.getContentPane().add(table);
}
}
上面的是主页面的代码🤔
下面是添加页面的代码🤔