📄 ui.java
字号:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.Socket;
import java.nio.*;
import javax.swing.*;
public class UI extends JFrame{
private static final long serialVersionUID = 1L;
private mypanel p = new mypanel(); // panel变量,继承JPanel类,作为可视化的刷新部分
private JMenuBar m;
private JMenu mu;
private byte cl;
Socket s; // Socket类
JMenuItem ji2 = new JMenuItem("后手");
private boolean xianshou = false;
UI() {
setSize(352,405); // 设定窗口大小
setTitle("SoSo Gobang"); // 设定窗口标题
setResizable(false);
setLayout(new BorderLayout());
initMenu();
add(BorderLayout.CENTER, p); // 将panel添加进入race
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口即退出程序
setVisible(true); // 将窗口设为可见
}
private void initMenu() {
m = new JMenuBar();
mu = new JMenu("游戏方式");
JMenuItem ji = new JMenuItem("人机对战");
ji.addActionListener(input);
JMenuItem ji1 = new JMenuItem("自动对战");
ji1.addActionListener(input1);
ji2.addActionListener(input2);
mu.add(ji);
mu.add(ji1);
m.add(mu);
m.add(ji2);
add(BorderLayout.NORTH, m);
}
private ActionListener input=new ActionListener() {
public void actionPerformed(ActionEvent e) {
p.start(xianshou);
ji2.setEnabled(false);
}
};
private ActionListener input1=new ActionListener() {
public void actionPerformed(ActionEvent e) {
ji2.setEnabled(false);
String host = JOptionPane.showInputDialog("请输入服务器地址:");
try {
s = new Socket(host,9527);
ByteBuffer bytebuf = ByteBuffer.allocate(1); // 创建一个指定大小的缓冲区
bytebuf.order(ByteOrder.LITTLE_ENDIAN);
s.getInputStream().read(bytebuf.array());
byte b = bytebuf.get();
switch(b) {
case 3:
cl = 0;
break;
case 4:
cl = 1;
break;
default:
bytebuf.flip();
break;
}
p.autostart(s, cl);
} catch(Exception ex) {
System.err.println(ex);
}
}
};
private ActionListener input2=new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(ji2.getText() == "后手") {
ji2.setText("先手");
xianshou = true;
}
else {
ji2.setText("后手");
xianshou = false;
}
}
};
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new UI();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -