我现在用JOptionPane.showMessageDialog来显示一个出错的提示对话框,可是显示出来的对话框的确定按钮的确定两个字显示不出来,是两个方框,我该怎么解决这个问题阿??请高手帮忙,谢谢。
我是放在了一个if语句之下,要是放在if外就正确显示了,怎么回事啊?

解决方案 »

  1.   

    这是我的代码:
    mport java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;import javax.swing.JOptionPane;
    public class Datarecevied extends Thread{

    public Datarecevied(String NAME)throws IOException{
    socketserver = new DatagramSocket(8000);
     name = GetData(NAME); }
    protected DatagramSocket socketserver=null;
    public String received,name;
        

    public String GetData(String string){
    return string;

    }

    public void run(){
    ChatTableFrame cf;
    try {
    cf = new ChatTableFrame(name);

    GetUserList getuser = new GetUserList();
    getuser.start();

    try {
    Thread.sleep(500);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    while(true)
    {


    cf.lst.clear();

    for(int i = getuser.num-1;i>=0;i--){
    cf.lst.addItem(getuser.ss[i]);

    }

    try{


    byte[] rbuf=new byte[256];
    byte[] buf=new byte[15];



    DatagramPacket packet=new DatagramPacket(rbuf,rbuf.length);
    socketserver.receive(packet);
    received = new String(packet.getData());

    String rece = received.substring(0,15);
    System.out.println(rece);



    if(rece.equals("filesendrequest")){
    JOptionPane.showMessageDialog(cf,"hello","title",JOptionPane.DEFAULT_OPTION);

    int value =JOptionPane.showConfirmDialog(null, "对方请求发送文件,是否接收?", "询问", JOptionPane.YES_NO_OPTION);


    cf.ta.append("\n对方请求发送文件,是否接收?");



    if(value == 1){
    String dString=null;

    InetAddress address=packet.getAddress();

    dString="notagreetoreceviedfile";

    byte[] sbuf=new byte[19];
    sbuf=dString.getBytes();

    int port=packet.getPort();
    packet=new DatagramPacket(sbuf,sbuf.length,address,port);
    socketserver.send(packet);
    }else{

    String dString=null;

    InetAddress address=packet.getAddress();

    dString="agreetoreceviedfile";

    Filerecevied fr = new Filerecevied();
    fr.start();

    byte[] sbuf=new byte[19];
    sbuf=dString.getBytes();

    int port=packet.getPort();
    packet=new DatagramPacket(sbuf,sbuf.length,address,port);
    socketserver.send(packet);
    }


    }
    else{
    System.out.println(received); 
    cf.ta.append(GetData(received+"\n"));
    }


    }catch(IOException e1)
    {
    e1.printStackTrace();
    }
    }} catch (IOException e) {
    e.printStackTrace();
    }
    }}好像有这句if(rece.equals("filesendrequest"))就不行了