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

📄 javaphone.java

📁 java编写的sip协议软电话,结构非常清晰的SIP协议栈
💻 JAVA
字号:
package JavaPhoneTeam10;

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.sql.SQLException;

import javax.swing.*;

public class JavaPhone extends JFrame{
	//declaration

	Toolkit tool;

	JTextField text;

	ConnDB myconn;

	JButton[] bt = new JButton[2];

	public JavaPhone() {
		myconn = new ConnDB();
	}

	//Main method
	public static void main(String[] args) {

		JavaPhone jp = new JavaPhone();
		jp.init();
        //jp.setVisible(true);
	}

	public void init() {

		tool = this.getToolkit();
		Font font = new Font("宋体", Font.PLAIN, 13);
		Color color = new Color(213, 210, 255);

		/* build panels */
		// top logo panel
		JPanel top = new JPanel();
		ImageCanvas1 logoimg = new ImageCanvas1("img\\logo.jpg", 450, 55);
		logoimg.setLocation(1, 1);
		top.add(logoimg);

		// screen panel
		Panel screen = new Panel();

		//create textfield
		text = new JTextField();
		text.setLocation(10, 10);
		text.setSize(165, 70);
		text.setEditable(false);
		text.setHorizontalAlignment(JTextField.LEFT);
		text.setBackground(new Color(243, 234, 245));
		text.setFont(new Font("楷体", Font.PLAIN, 25));

		//create clear button
		JButton clearbt = new JButton("c");
		clearbt.setLocation(185, 35);
		clearbt.setSize(34, 25);

		//add textfield and clear button to screen panel
		screen.setLayout(null);
		screen.add(text);
		screen.add(clearbt);

		//add listener
		clearbt.addActionListener(new ClearButtonHandler());

		//volume panel
		Panel volume = new Panel();

		//create sliders
		JSlider mike = new JSlider();
		JSlider receiver = new JSlider();

		//create images
		ImageCanvas1 mikeimg = new ImageCanvas1("img\\mike.gif", 57, 21);
		ImageCanvas1 receiverimg = new ImageCanvas1("img\\reveicer.gif", 20, 21);

		//add to volume panel
		volume.setLayout(new GridLayout(2, 2));
		volume.add(mike);
		volume.add(mikeimg);
		volume.add(receiver);
		volume.add(receiverimg);

		//orderPanle
		Panel orderPanel = new Panel();

		//prepare order button for order panel
		JButton orderbt1 = new JButton("免提");
		JButton orderbt2 = new JButton("暂停");
		JButton orderbt3 = new JButton("重拨");
		JButton orderbt4 = new JButton("电话簿");
		JButton orderbt5 = new JButton("通话查看");
		JButton orderbt6 = new JButton("查费");

		///////////////////////////////////////////////////////////////////////////////////////////

		orderbt1.setFont(font);
		orderbt2.setFont(font);
		orderbt3.setFont(font);
		orderbt4.setFont(font);
		orderbt5.setFont(font);
		orderbt6.setFont(font);

		orderbt1.setSize(50, 50);
		orderbt2.setSize(50, 50);
		orderbt3.setSize(50, 50);
		orderbt4.setSize(50, 50);
		orderbt5.setSize(50, 50);
		orderbt6.setSize(50, 50);

		//////////////////////////////////////////////////////////////////////////////////////////
		Insets m = orderbt1.getMargin();
		m.left = 5;
		m.right = 5;
		orderbt5.setMargin(m);

		//add order button to orderPanle
		orderPanel.setLayout(new GridLayout(2, 3));
		orderPanel.add(orderbt1);
		orderPanel.add(orderbt2);
		orderPanel.add(orderbt3);
		orderPanel.add(orderbt4);
		orderPanel.add(orderbt5);
		orderPanel.add(orderbt6);

		//dail panel which adds dial buttons
		Panel dail = new Panel();
		dail.setLocation(10, 250);
		dail.setLayout(new GridLayout(4, 3));

		//prepare imageicon for number buttons
		ImageIcon[] imgic = new ImageIcon[12];
		imgic[0] = new ImageIcon(tool.getImage("img\\1.gif"));
		imgic[1] = new ImageIcon(tool.getImage("img\\2.gif"));
		imgic[2] = new ImageIcon(tool.getImage("img\\3.gif"));
		imgic[3] = new ImageIcon(tool.getImage("img\\4.gif"));
		imgic[4] = new ImageIcon(tool.getImage("img\\5.gif"));
		imgic[5] = new ImageIcon(tool.getImage("img\\6.gif"));
		imgic[6] = new ImageIcon(tool.getImage("img\\7.gif"));
		imgic[7] = new ImageIcon(tool.getImage("img\\8.gif"));
		imgic[8] = new ImageIcon(tool.getImage("img\\9.gif"));
		imgic[9] = new ImageIcon(tool.getImage("img\\xing.gif"));
		imgic[10] = new ImageIcon(tool.getImage("img\\0.gif"));
		imgic[11] = new ImageIcon(tool.getImage("img\\#.gif"));

		//prepare number buttons and add buttons to dail panel
		JButton[] numberbt = new JButton[12];
		for (int i = 0; i < 12; i++) {
			numberbt[i] = new JButton("", imgic[i]);
			dail.add(numberbt[i]);
		}

		//add listener
		numberbt[0].addActionListener(new ButtonHandler1());
		numberbt[1].addActionListener(new ButtonHandler2());
		numberbt[2].addActionListener(new ButtonHandler3());
		numberbt[3].addActionListener(new ButtonHandler4());
		numberbt[4].addActionListener(new ButtonHandler5());
		numberbt[5].addActionListener(new ButtonHandler6());
		numberbt[6].addActionListener(new ButtonHandler7());
		numberbt[7].addActionListener(new ButtonHandler8());
		numberbt[8].addActionListener(new ButtonHandler9());
		numberbt[9].addActionListener(new ButtonHandler10());
		numberbt[10].addActionListener(new ButtonHandler11());
		numberbt[11].addActionListener(new ButtonHandler12());

		//dail show panel
		JPanel show = new JPanel();
		show.setLocation(10, 10);

		//prepare imageicon for dail button
		ImageIcon[] ig = new ImageIcon[4];
		ig[0] = new ImageIcon(tool.getImage("img\\left.gif"));
		ig[1] = new ImageIcon(tool.getImage("img\\right.gif"));

		//prepare buttons for dailshow panel and add image to buttons

		bt[0] = new JButton("", ig[0]);
		bt[1] = new JButton("", ig[1]);
		bt[0].setLocation(40, 20);
		bt[1].setLocation(70, 20);
		bt[0].setSize(30, 30);
		bt[1].setSize(30, 30);
		//bt[0].setBorderPainted(false);
		//bt[1].setBorderPainted(false);

		//add listener
		bt[0].addActionListener(new BtHandler1());
		bt[1].addActionListener(new BtHandler2());

		//add buttons to show panel
		//show.setLayout(null);????????
		show.add(bt[0]);
		show.add(bt[1]);

		// left panel,拨号键
		Panel left = new Panel();
		left.setLayout(new GridLayout(3, 1));
		left.add(screen);
		left.add(volume);
		left.add(orderPanel);

		//right panel,挂断键
		Panel right = new Panel();
		//right.setLayout(null);?????
		right.add(show);
		right.add(dail);

		//bottom panel
		Panel bottom = new Panel();
		bottom.setLayout(new GridLayout(1, 2));
		bottom.add(left);
		bottom.add(right);

		//JFrame

		this.setSize(450, 360);
		this.setResizable(false);

		this.getContentPane().add(top, BorderLayout.NORTH);
		this.getContentPane().add(bottom);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		this.setVisible(true);
		try {
			MyServer myserver1 = new MyServer();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	//class ClearButtonHandler
	class ClearButtonHandler implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText("");
		}
	}

	//btHandler1
	class BtHandler1 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.out.println("select * from phone where id='"
					+ text.getText() + "' and flag=1");
			String hostip = null;
			try {
				myconn.executeQuery("select * from phone where id='"
						+ text.getText() + "' ");

				if (myconn.db_rset.next()) {
					hostip = myconn.db_rset.getString("address");
					System.out.println(hostip);
					MyClient myclient1 = new MyClient(hostip);
					myclient1.say("hello");
				} else {
					JOptionPane.showConfirmDialog(null,
							"The number you calling doesn't exis or doesn't on line!", "Info",
							JOptionPane.CLOSED_OPTION,
							JOptionPane.INFORMATION_MESSAGE);
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}
	}

	class BtHandler2 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			//bt[0].setBorder(BorderFactory.createRaisedBevelBorder());
			//bt[1].setBorder(BorderFactory.createLoweredBevelBorder());
			//bt[1].setBorder(BorderFactory.createRaisedBevelBorder());
		}
	}

	class ButtonHandler1 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "1");
		}
	}

	class ButtonHandler2 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "2");
		}
	}

	class ButtonHandler3 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "3");
		}
	}

	class ButtonHandler4 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "4");
		}
	}

	class ButtonHandler5 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "5");
		}
	}

	class ButtonHandler6 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "6");
		}
	}

	class ButtonHandler7 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "7");
		}
	}

	class ButtonHandler8 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "8");
		}
	}

	class ButtonHandler9 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "9");
		}
	}

	class ButtonHandler10 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "*");
		}
	}

	class ButtonHandler11 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "0");
		}
	}

	class ButtonHandler12 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			text.setText(text.getText() + "#");
		}
	}

}

/*
 * class MyButton extends JButton { ImageIcon imageIcon; String url; public
 * MyButton() { super(name); super(
 * enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK); }
 * 
 * protect void addImageIcon(String url) { this.url = url; imageIcon = new
 * ImageIcon(tool.getImage(url)); }
 * 
 * protect void processMouseMotionEvent(MouseEvent e) { } }
 */

class ImageCanvas1 extends Canvas {
	Toolkit tool;

	Image img;

	int width;

	int height;

	/**
	 * Constructor, Creates new ImageCanvas
	 */
	public ImageCanvas1(String imgString, int w, int h) {
		this.width = w;
		this.height = h;
		setSize(w, h);
		tool = getToolkit();
		img = tool.getImage(imgString);
	}

	/**
	 * overide super's paint method, draw the specified image on the canvas
	 */
	public void paint(Graphics g) {
		g.drawImage(img, 0, 0, width, height, this);
	}
}

⌨️ 快捷键说明

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