Java网络斗地主小程序

该项目使用Java的Socket进行客户端和服务器端的信息交互,构建一个多客户端的斗地主游戏。实现了多线程,包括MainJFrame、MyPanel、Login、SendThread等类在客户端,以及MainJFrame、poker、player类在服务器端。目前进度为创建了扑克标签类PokerLabel,实现了compareTo方法用于比较,以及显示扑克和点击事件的处理。
摘要由CSDN通过智能技术生成

Java 网络斗地主

项目要求:
运用多线程知识构建一个多客户端的斗地主程序,斗地主功能完善,利用Socket实现客户端和服务器端的信息交互。

未完成 进展:
客户端:
MainJFrame类

public class MainFrame extends JFrame{
   
    public MyPanel myPanel;
    public String uname;
    public Socket socket;

    public SendThread sendThread;

    public MainFrame(String uname, Socket socket){
   
        this.uname = uname;
        this.socket = socket;

        //设置窗口属性
        this.setSize(1200,700);
        this.setVisible(true);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //添加Mypanel
        myPanel = new MyPanel();
        myPanel.setBounds(0,0,1200,700);
        this.add(myPanel);

        //启动发消息的线程
        sendThread = new SendThread(socket,uname);
        sendThread.start();
    }
}

MyPanel类

public class MyPanel extends JPanel {
   
    @Override
    protected void paintComponent(Graphics g) {
   
        Image image = new ImageIcon("images/bg/bg1.png").getImage();
        g.drawImage(image,0,0,this.getWidth(),this.getHeight(),null);
    }
}

Login类

public class Login extends JFrame {
   
    private JLabel uanmeJLabel;
    private JTextField unameJTextField;
    private JButton btnJButton;

    public Login(){
   
        this.uanmeJLabel = new JLabel("登录名:");
        this.unameJTextField = new JTextField();
        this.btnJButton = new JButton("登录");

        this.setSize(500,200);
        this.setVisible(true);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setLayout(new GridLayout(1,3));

        this.add(uanmeJLabel);
        this.add(unameJTextField);
        this.add(btnJButton);

        //创建我们的监听器对象 绑定到按钮上
        MyEvent myEvent = new MyEvent();
        this.btnJButton.addActionListener(myEvent);
    }

    //创建事件监听器
    class MyEvent implements ActionListener{
   

        @Override
        public void actionPerformed(ActionEvent e) {
   
            //获取用户名
            String uname = unameJTextField.getText();
            //创建一个socket连接服务器
            try {
   
                Socket socket = new Socket("127.0.0.1",6666);

                //跳转到主窗口
                new MainFrame(uname,socket);
            } catch (IOException e1) {
   
                e1.printStackTrace();
            }


        }
    }
}

SendThread类

public class SendThread extends Thread {
   
    private Socket socket;
    private String msg;

    public String g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值