⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guimain.java

📁 排课系统
💻 JAVA
字号:
package org.cross.sms.gui;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import org.cross.sms.*;
import java.util.*;
import java.io.*;

public class GUIMain extends JFrame {
    SmsServer m_server = null;
    _guiThread m_thread;
    AddressList m_add = new AddressList();
    JPanel panel_cont = new JPanel();
    JPanel panel_res = new JPanel();
    JLabel ltypetip = new JLabel();
    JLabel lstatus = new JLabel();
    JButton btn_Send = new JButton();
    JTextArea ta_res = new JTextArea();
    JTextArea ta_cont = new JTextArea();
    JScrollPane scrollPane_res = new JScrollPane();
    JScrollPane scrollPane_cont = new JScrollPane();
    BorderLayout borderLayout1 = new BorderLayout();
    BorderLayout borderLayout2 = new BorderLayout();
    JPanel panel_cont_header = new JPanel();
    java.awt.BorderLayout borderLayout3 = new BorderLayout();
    JPanel panel_cont_cent = new JPanel();
    java.awt.BorderLayout borderLayout4 = new BorderLayout();
    JPanel panel_cont_bot = new JPanel();
    java.awt.BorderLayout borderLayout5 = new BorderLayout();
    JComboBox cb_phone = new JComboBox();
    public GUIMain() {
        m_server = new SmsServer();
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    protected boolean isConnected() {
        if (m_server == null) {
            return false;
        }
        return true;
    }

    public void open(String com) {
//        close();
        m_add.init();
        fillAddList();
        m_server.setComName(com);
        try {
            m_server.start();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        m_thread = new _guiThread(m_server, this);
        m_thread.start();
    }

    public void close() {
        if (m_server != null) {
            m_server.stop();
            m_server = null;
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);

        panel_cont.setPreferredSize(new Dimension(270, 160));
        panel_cont.setLayout(borderLayout3);
        panel_cont.setAlignmentX((float) 0.5);
        panel_cont.setAlignmentY((float) 0.5);
        panel_cont.setBorder(BorderFactory.createLineBorder(Color.black));

        ltypetip.setText("手机号码: +86");
        cb_phone.setPreferredSize(new Dimension(120, 22));
        cb_phone.setEditable(true);

        ta_cont.setBorder(BorderFactory.createLineBorder(Color.black));
        ta_cont.setLineWrap(true);
        ta_cont.addKeyListener(new GUIMain_ta_content_keyAdapter(this));
        ta_cont.setAutoscrolls(true);
        btn_Send.setText("发送");
        btn_Send.addActionListener(new SMSClient_btn_Send_actionAdapter(this));
        btn_Send.setPreferredSize(new Dimension(60,25));
        lstatus.setPreferredSize(new Dimension(0, 15));
        lstatus.setToolTipText("");
        panel_cont_cent.setLayout(borderLayout4);
        panel_cont_bot.setLayout(borderLayout5);
        panel_cont_cent.add(scrollPane_cont, java.awt.BorderLayout.CENTER);
        panel_cont_header.add(ltypetip);
        panel_cont_header.add(cb_phone);

        panel_cont.add(panel_cont_cent, java.awt.BorderLayout.CENTER);
        scrollPane_cont.getViewport().add(ta_cont, null);
        panel_cont.setAutoscrolls(true);

        panel_res.setBorder(BorderFactory.createLineBorder(Color.black));
        panel_res.setLayout(borderLayout2);
        ta_res.setBorder(BorderFactory.createLineBorder(Color.black));
        ta_res.setLineWrap(true);
        ta_res.setEditable(false);
        panel_res.setAutoscrolls(true);
        scrollPane_res.getViewport().add(ta_res,null);
        panel_res.add(scrollPane_res, java.awt.BorderLayout.CENTER);

        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.addComponentListener(new GUIMain_this_componentAdapter(this));
        this.addWindowListener(new GUIMain_this_windowAdapter(this));
        this.getContentPane().add(panel_cont, java.awt.BorderLayout.SOUTH);
        this.getContentPane().add(panel_res, java.awt.BorderLayout.CENTER);
        panel_cont.add(panel_cont_bot, java.awt.BorderLayout.SOUTH);
        panel_cont.add(panel_cont_header, java.awt.BorderLayout.NORTH);
        panel_cont_bot.add(btn_Send, java.awt.BorderLayout.EAST);
        panel_cont_bot.add(lstatus, java.awt.BorderLayout.CENTER);
        this.setSize(292, 470);
        this.setLocation(100, 100);
    }

    private void fillAddList(){
        cb_phone.removeAllItems();
        for(int i=0;i<m_add.size();i++){
            cb_phone.addItem(m_add.getPhone(i));
        }
    }

    public static void main(String[] args) {
        GUIMain cl = new GUIMain();
        SMSConnect con = new SMSConnect(cl);
        con.setVisible(true);
        if (con.isok) {
            cl.open(con.m_com);
            cl.setVisible(true);
        } else {
            System.exit(0);
        }
    }


    public void doSend(){
        try {
            String phone = cb_phone.getSelectedItem().toString();
//                    "+86" + txt_phone.getText().trim();
            m_server.send(phone,ta_cont.getText().trim());
            String cont = ta_cont.getText();
            if(cont.trim().equals("")){
                JOptionPane.showMessageDialog(this,"没有信息");
                return;
            }
            //发送后拷贝到剪贴板中
            StringSelection ss = new StringSelection(cont);
            Clipboard cl = getToolkit().getSystemClipboard();
            cl.setContents(ss,ss);
            appendResp("我说:\n");
            appendResp(cont+"\n");
            ta_cont.setText("");
            ta_cont.requestFocus();
            new Sound(Sound.SEND).start();
            //将新号码加入到地址列表中
            if(!m_add.contains(phone)){
                m_add.add(0, phone);
            }
            if(!phone.equals(m_add.get(0))){
                m_add.remove(phone);
                m_add.add(0,phone);
                fillAddList();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }
    public void btn_Send_actionPerformed(ActionEvent e) {
        doSend();
    }

    public void appendResp(String rsp) {
        ta_res.append(rsp);
        ta_res.setCaretPosition(ta_res.getText().length());
    }

    public void this_windowActivated(WindowEvent e) {
        ta_cont.requestFocus();
    }

    public void ta_content_keyTyped(KeyEvent e) {
        if(e.isAltDown()){
            if(e.getKeyChar()=='s'){
                doSend();
            }
        }
    }

    public void ta_content_keyReleased(KeyEvent e) {
        int len =
                    ta_cont.getText().length();

        lstatus.setText("长度为"+len);
    }

    public void this_componentResized(ComponentEvent e) {
        int y=this.getHeight();
        int x=this.getWidth();
        System.out.println("x="+x+" y="+y);
        if(x<290||y<470){
            if(x<290)x=290;
            if(y<470)y=470;
            this.setSize(new Dimension(x,y));
        }
//        x = x - 20;
//        y = y - 40;
//        int cy = Math.round(y*35/100);
//        int ry = y-cy;
//
//        jPanel1.setSize(new Dimension(x,cy));
//        jPanel2.setSize(new Dimension(x,ry));
//        this.repaint();
    }

    public void this_windowClosing(WindowEvent e) {
        m_add.save();
    }
}
class GUIMain_ta_content_keyAdapter extends KeyAdapter {
    private GUIMain adaptee;
    GUIMain_ta_content_keyAdapter(GUIMain adaptee) {
        this.adaptee = adaptee;
    }

    public void keyTyped(KeyEvent e) {
        adaptee.ta_content_keyTyped(e);
    }
    public void keyReleased(KeyEvent e) {
        adaptee.ta_content_keyReleased(e);
    }

}


class GUIMain_this_windowAdapter extends WindowAdapter {
    private GUIMain adaptee;
    GUIMain_this_windowAdapter(GUIMain adaptee) {
        this.adaptee = adaptee;
    }

    public void windowActivated(WindowEvent e) {
        adaptee.this_windowActivated(e);
    }

    public void windowClosing(WindowEvent e) {
        adaptee.this_windowClosing(e);
    }
}


class GUIMain_this_componentAdapter extends ComponentAdapter {
    private GUIMain adaptee;
    GUIMain_this_componentAdapter(GUIMain adaptee) {
        this.adaptee = adaptee;
    }

    public void componentResized(ComponentEvent e) {
        adaptee.this_componentResized(e);
    }
}


class SMSClient_btn_Send_actionAdapter implements ActionListener {
    private GUIMain adaptee;
    SMSClient_btn_Send_actionAdapter(GUIMain adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btn_Send_actionPerformed(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -