package com.wuziqi.pk; import java.awt.event.*; import java.awt.*; import javax.swing.*; /* 五子棋主框架類,程序啟動類 */ public class StartChessJFrame extends JFrame { private ChessBoard chessBoard; private JPanel toolbar; private JButton startButton,backButton,exitButton; private JMenuBar menuBar; private JMenu sysMenu; private JMenuItem startMenuItem,exitMenuItem,backMenuItem; //重新开始,退出,和悔棋菜单项 public StartChessJFrame(){ setTitle("单机版五子棋");//设置标题 chessBoard=new ChessBoard(); Container contentPane=getContentPane(); contentPane.add(chessBoard); chessBoard.setOpaque(true); //创建和添加菜单 menuBar =new JMenuBar();//初始化菜单栏 sysMenu=new JMenu("系统");//初始化菜单 //初始化菜单项 startMenuItem=new JMenuItem("重新开始"); exitMenuItem =new JMenuItem("退出"); backMenuItem =new JMenuItem("悔棋"); //将三个菜单项添加到菜单上 sysMenu.add(startMenuItem); sysMenu.add(exitMenuItem); sysMenu.add(backMenuItem); //初始化按钮事件监听器内部类 MyItemListener lis=new MyItemListener(); //将三个菜单注册到事件监听器上 this.startMenuItem.addActionListener(lis); backMenuItem.addActionListener(lis); exitMenuItem.addActionListener(lis); menuBar.add(sysMenu);//将系统菜单添加到菜单栏上 setJMenuBar(menuBar);//将menuBar设置为菜单栏 toolbar=new JPanel();//工具面板实例化 //三个按钮初始化 startButton=new JButton("重新开始"); exitButton=new JButton("退出"); backButton=new JButton("悔棋"); //将工具面板按钮用FlowLayout布局 toolbar.setLayout(new FlowLayout(FlowLayout.LEFT)); //将三个按钮添加到工具面板 toolbar.add(startButton); toolbar.add(exitButton); toolbar.add(backButton); //将三个按钮注册监听事件 startButton.addActionListener(lis); exitButton.addActionListener(lis); backButton.addActionListener(lis); //将工具面板布局到界面”南方“也就是下方 add(toolbar,BorderLayout.SOUTH); add(chessBoard);//将面板对象添加到窗体上 //设置界面关闭事件 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //setSize(800,800); pack();//自适应大小 } private class MyItemListener implements ActionListener{ public void actionPerformed(ActionEvent e){ Object obj=e.getSource();//获得事件源 if(obj==StartChessJFrame.this.startMenuItem||obj==startButton){ //重新开始 //JFiveFrame.this内部类引用外部类 System.out.println("重新开始"); chessBoard.restartGame(); } else if (obj==exitMenuItem||obj==exitButton) System.exit(0); else if (obj==backMenuItem||obj==backButton){ System.out.println("悔棋..."); chessBoard.goback(); } } } public static void main(String[] args){ StartChessJFrame f=new StartChessJFrame();//创建主框架 f.setVisible(true);//显示主框架 } }

鬼屋报道 LV3
2024年6月1日
zhos0212 LV19
2024年2月29日
方法56868383 LV1
2024年2月6日
周俊杰 LV1
2023年12月25日
张张张飞 LV1
2023年11月28日
Zhang昊 LV1
2023年6月3日
墨鱼仔 LV1
2023年6月3日
fenghuijun LV26
2023年3月30日
刘鹏yyds LV10
2022年12月21日
嘻嘻嘻嘻嘻嘻司法所 LV1
2022年12月15日

bingtian1112 LV1
1月9日
jjbjbkj LV1
2024年12月17日
yzhsnjdn LV1
2024年12月17日
慕容秋雨
2024年11月10日
暂无贡献等级
1601558066
2024年8月1日
暂无贡献等级
柳咪华沙 LV7
2024年6月28日
qqqww11 LV2
2024年6月26日
qatbc66
2024年6月20日
暂无贡献等级
sunxiaoyan LV1
2024年6月19日
鬼屋报道 LV3
2024年6月1日