?? mainframe2.java~44~
字號:
package multiclientnew;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.EtchedBorder;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.*;
import java.net.*;
import java.io.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MainFrame2 extends JFrame {
DatagramSocket socket;
byte[] buf =new byte[1000];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
InetAddress serverHost;
int serverPort;
String name1;
String name2;
String strip;
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JScrollPane jScrollPane1 = new JScrollPane();
JScrollPane jScrollPane2 = new JScrollPane();
Border border1 = BorderFactory.createEtchedBorder(EtchedBorder.RAISED,
Color.white, new Color(165, 163, 151));
Border border2 = new TitledBorder(border1, "Message");
JTextArea jTextArea1 = new JTextArea();
JTextArea jTextArea2 = new JTextArea();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
public MainFrame2(String ip1,int dk) {
strip = ip1;
serverPort = dk;
// System.out.println(name);
// System.out.println(ip);
// jTextArea1.append(name+ip);
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
serverSet();
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
class ReadMessageThread extends Thread{
public void run(){
while(true){
try{
socket.receive(dp);
}catch(IOException e1){
jTextArea1.append("讀端口信息出錯\n");
}
String rcvd = new String(dp.getData(),0,dp.getLength());
InetAddress ip = dp.getAddress();
int port = dp.getPort();
rcvd = rcvd+",from address"+ip+",port:"+port;
jTextArea1.append(ip+"\n"+rcvd+"\n");
}
}
}
public void serverSet(){
try{
socket =new DatagramSocket(serverPort);
jTextArea1.append("服務器數據報建立\n");
}catch(IOException e){
jTextArea1.append("服務器端口出錯\n ");
}
try{
serverHost = InetAddress.getByName(strip);
}catch(IOException e){
jTextArea1.append("iP地址出錯\n ");
}
if(socket != null){
ReadMessageThread readThread =new ReadMessageThread();
readThread.start();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
border2 = new TitledBorder(BorderFactory.createEtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)),
"Message");
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(470, 450));
setTitle("Frame Title");
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new
MainFrame2_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new
MainFrame2_jMenuHelpAbout_ActionAdapter(this));
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane1.setBorder(border2);
jScrollPane1.setBounds(new Rectangle(18, 34, 433, 174));
jScrollPane2.setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane2.setBorder(border2);
jScrollPane2.setBounds(new Rectangle(18, 218, 433, 138));
jButton1.setBounds(new Rectangle(367, 366, 84, 27));
jButton1.setText("發送");
jButton1.addActionListener(new MainFrame2_jButton1_actionAdapter(this));
jButton2.setBounds(new Rectangle(30, 9, 84, 24));
jButton2.setText("傳輸文件");
jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
jLabel1.setText("A");
jLabel1.setBounds(new Rectangle(229, 9, 68, 23));
jLabel2.setText("Chat with");
jLabel2.setBounds(new Rectangle(322, 9, 75, 21));
jLabel3.setText("chat with");
jLabel3.setHorizontalAlignment(SwingConstants.LEFT);
jLabel3.setBounds(new Rectangle(388, 9, 62, 24));
jMenuBar1.add(jMenuFile);
jMenuFile.add(jMenuFileExit);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
contentPane.add(jButton2);
contentPane.add(jScrollPane1);
contentPane.add(jScrollPane2);
contentPane.add(jButton1);
contentPane.add(jLabel1);
contentPane.add(jLabel3);
contentPane.add(jLabel2);
jScrollPane2.getViewport().add(jTextArea2);
jScrollPane1.getViewport().add(jTextArea1);
setJMenuBar(jMenuBar1);
jLabel1.setText(name1);
jLabel3.setText(name2);
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
MainFrame2_AboutBox dlg = new MainFrame2_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.setVisible(true);
}
public void jButton1_actionPerformed(ActionEvent e) {
if(socket!=null){
String str= jTextArea2.getText();
jTextArea1.append("Selfe\n"+str+"\n");
buf = new byte[1000];
buf = str.getBytes();
dp =new DatagramPacket(buf,buf.length,serverHost,serverPort);
try{
socket.send(dp);
}catch(IOException e3){
jTextArea1.append("發送消息出錯\n");
}
}
jTextArea2.setText("");
}
}
class MainFrame2_jButton1_actionAdapter implements ActionListener {
private MainFrame2 adaptee;
MainFrame2_jButton1_actionAdapter(MainFrame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class MainFrame2_jMenuFileExit_ActionAdapter implements ActionListener {
MainFrame2 adaptee;
MainFrame2_jMenuFileExit_ActionAdapter(MainFrame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileExit_actionPerformed(actionEvent);
}
}
class MainFrame2_jMenuHelpAbout_ActionAdapter implements ActionListener {
MainFrame2 adaptee;
MainFrame2_jMenuHelpAbout_ActionAdapter(MainFrame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuHelpAbout_actionPerformed(actionEvent);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -