📄 mainframe.java~124~
字号:
package Frame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.util.Scanner;
import Frame.Bean1;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MainFrame extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
//重载的构造函数
public MainFrame(boolean mode,int userNumber) {
try {
jbInit(mode,userNumber);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit(boolean mode,int userNumber) throws Exception {
getContentPane().setLayout(borderLayout1);
getContentPane().setLayout(null);
setSize(this._width,this._height);
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension dim=kit.getScreenSize();
setLocation((dim.width/2)-(this._width/2),(dim.height/2)-(this._height/2));
if(mode)
{
setTitle("抢答模式");
}
else
{
setTitle("测试模式");
}
this._userNumber=userNumber;
this._mode=mode;
//添加重新开始菜单
JMenu menu=new JMenu("开 始");
JMenuItem menuStart=new JMenuItem("开始抢答");
menuStart.addActionListener(new menuStart_actionAdapter(this));
JMenuItem menuRestart=new JMenuItem("重新开始");
menuRestart.setEnabled(false);
menuRestart.addActionListener(new menuRestart_actionAdapter(this));
menu.add(menuStart);
menu.add(menuRestart);
menuBar.add(menu);
//添加模式菜单
JMenu menuMode=new JMenu("模 式");
JMenuItem menuLootMode=new JMenuItem("抢答模式");
JMenuItem menuTestMode=new JMenuItem("测试模式");
menuMode.add(menuLootMode);
menuMode.add(menuTestMode);
menuBar.add(menuMode);
//添加退出菜单
JMenu menuExit=new JMenu("退 出");
JMenuItem menuExitItem=new JMenuItem("退出系统");
menuExitItem.addActionListener(new menuExitItem_actionAdapter(this));
menuExit.add(menuExitItem);
menuBar.add(menuExit);
//将menuBar添加到窗体
this.setJMenuBar(menuBar);
}
//getUserNumber
public int getUserNumber()
{
return _userNumber;
}
private int _width=1000;
private int _height=500;
private int _userNumber=0;
private boolean _mode=false;
private JLabel labNumber;
private JLabel text;
JMenuBar menuBar=new JMenuBar();
//创建socket服务器
ServerSocket server;
}
//退出系统菜单按钮事件
class menuExitItem_actionAdapter implements ActionListener {
private MainFrame adaptee;
menuExitItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
//开始抢答菜单单击事件
class menuRestart_actionAdapter implements ActionListener {
private MainFrame adaptee;
menuRestart_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
//
}
}
//重新开始菜单单击事件
class menuStart_actionAdapter implements ActionListener {
private MainFrame adaptee;
menuStart_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
Runnable r=new RunServer(adaptee);
Thread t=new Thread(r);
t.start();
}
}
//抢答模式菜单单击事件
class menuLootMode_actionAdapter implements ActionListener {
private MainFrame adaptee;
menuLootMode_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
//抢答模式菜单动作在此添加动作
}
}
//测试模式菜单单击事件
class menuTestMode_actionAdapter implements ActionListener {
private MainFrame adaptee;
menuTestMode_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
//
}
}
//创建线程
class RunServer implements Runnable
{
public RunServer(MainFrame frame)
{
super();
_frame=frame;
}
public void run()
{
try
{
System.out.println("服务器启动了。");
int number=1;
_frame.server = new ServerSocket(8189);
while(number<=_frame.getUserNumber())
{
Socket socket =_frame.server.accept();
//得到数据流
InputStream incoming = socket.getInputStream();
Scanner scanner = new Scanner(incoming);
String name = scanner.nextLine();
if (number <= _frame.getUserNumber())
{
}
else
{
_frame.server.close();
}
number++;
}
}catch(Exception e)
{
System.out.println("错误在MainFrame的Server中!");
}
}
private MainFrame _frame;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -