?? broadcastword.java
字號:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class BroadCastWord extends Frame implements ActionListener
{
int port;
InetAddress group=null;
MulticastSocket socket=null;
Timer time=null;
FileDialog open=null;
Button select,開始廣播,停止廣播;
File file=null;
String FileDir=null,fileName=null;
FileReader in=null;
BufferedReader bufferIn=null;
int token=0;
TextArea 顯示正在播放內容,顯示已播放的內容;
public BroadCastWord()
{
super("單詞廣播系統");
select=new Button("選擇要廣播的文件");
開始廣播=new Button("開始廣播");
開始廣播.setEnabled(false);
停止廣播=new Button("停止廣播");
select.addActionListener(this);
開始廣播.addActionListener(this);
停止廣播.addActionListener(this);
time=new Timer(2000,this);
open=new FileDialog(this,"選擇要廣播的文件",FileDialog.LOAD);
顯示正在播放內容=new TextArea(10,10);
顯示正在播放內容.setForeground(Color.blue);
顯示已播放的內容=new TextArea(10,10);
Panel north=new Panel();
north.add(select);
north.add(開始廣播);
north.add(停止廣播);
add(north,BorderLayout.NORTH);
Panel center=new Panel();
center.setLayout(new GridLayout(1,2));
center.add(顯示正在播放內容);
center.add(顯示已播放的內容);
add(center,BorderLayout.CENTER);
validate();
try
{
port=5000;
group=InetAddress.getByName("239.255.0.0");
socket=new MulticastSocket(port);
socket.setTimeToLive(1);
socket.joinGroup(group);
}
catch(Exception e)
{
System.out.println("Error: "+ e);
}
setBounds(100,50,360,380);
setVisible(true);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==select)
{
顯示已播放的內容.setText(null);
open.setVisible(true);
fileName=open.getFile();
FileDir=open.getDirectory();
if(fileName!=null)
{
time.stop();
file=new File(FileDir,fileName);
try
{
file=new File(FileDir,fileName);
in=new FileReader(file);
bufferIn=new BufferedReader(in);
開始廣播.setEnabled(true);
}
catch(IOException ee)
{
}
}
}
else if(e.getSource()==開始廣播)
{
time.start();
}
else if(e.getSource()==time)
{
String s=null;
try
{
if(token==-1)
{
file=new File(FileDir,fileName);
in=new FileReader(file);
bufferIn=new BufferedReader(in);
}
s=bufferIn.readLine();
if(s!=null)
{
token=0;
顯示正在播放內容.setText("正在廣播的內容:\n"+s);
顯示已播放的內容.append(s+"\n");
DatagramPacket packet=null;
byte data[]=s.getBytes();
packet=new DatagramPacket(data,data.length,group,port);
socket.send(packet);
}
else
{
token=-1;
}
}
catch(IOException ee)
{
}
}
else if(e.getSource()==停止廣播)
{
time.stop();
}
}
public static void main(String[] args)
{
BroadCastWord broad=new BroadCastWord();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -