Проблема с качанием! (Проблема с отображением фрейма) - PullRequest
0 голосов
/ 13 января 2010

извините за публикацию большого количества кода !! Я не знаю, почему мой ListFrame не работает ??? это классы. Сначала я запускаю MainServer, а затем запускаю MainFrame в другом пакете. Затем, вставив правильное имя пользователя и пароль, будет показан список кадров, НО я нажимаю на строку меню или список или удаляю Кнопка, но ничего не произойдет. Почему? пожалуйста, помогите мне.

Класс MainSerevr:

public class MainServer {

static Socket client = null;
static ServerSocket server = null;

public static void main(String[] args) {
    System.out.println("Server is starting...");
    System.out.println("Server is listening...");

    try {
        server = new ServerSocket(5050);
    } catch (IOException ex) {
        System.out.println("Could not listen on port 5050");
        System.exit(-1);

    }
    try {
        client = server.accept();
        System.out.println("Client Connected...");
    } catch (IOException e) {
        System.out.println("Accept failed: 5050");
        System.exit(-1);
    }
    try {
        BufferedReader streamIn = new BufferedReader(new InputStreamReader(client.getInputStream()));

        boolean done = false;
        String line;
        while (!done) {
            line = streamIn.readLine();
            if (line.equalsIgnoreCase(".bye")) {
                done = true;
            } else {
                System.out.println("Client says: " + line);
            }
        }

        streamIn.close();
        client.close();
        server.close();
    } catch (IOException e) {
        System.out.println("IO Error in streams " + e);
    }
}}

ListFrame:

 public class ListFrame extends javax.swing.JFrame implements PersonsModelChangeListener {

    private InformationClass client;
    private static DefaultListModel model = new DefaultListModel();
    private ListSelectionModel moDel;

    /** Creates new form ListFrame */
    public ListFrame(InformationClass client) {
        initComponents();
        this.client = client;
        jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


        fillTable();
        Manager.addListener(this);
    }

    private void deleteAPerson() {
        int index = jList1.getSelectedIndex();
        String yahooId = (String) jList1.getSelectedValue();
        model.remove(index);
        Manager.removeApersonFromSQL(yahooId);
        int size = model.getSize();
        if (size == 0) {
            jButton1.setEnabled(false);
        } else {
            if (index == size) {
                index--;
            }
            jList1.setSelectedIndex(index);
            jList1.ensureIndexIsVisible(index);

        }
    }                       



  private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        AddAPerson frame = new AddAPerson(client);
        frame.setVisible(true);


    }                                          

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        deleteAPerson();
    }                                        

    private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {                                    
        MainClient.setText("");
        MainClient.runAClient();
        ChatFrame frame = new ChatFrame(client);
        frame.setVisible(true);
    }  
    public void fillTable() {
    try {
        List<InformationClass> list = null;
        list = Manager.getClientListFromMySQL();
        if (list == null) {

            JOptionPane.showMessageDialog(this, "You should add a person to your list", "Information", JOptionPane.OK_OPTION);
            return;
        } else {


            for (int i = 0; i < list.size(); i++) {
                InformationClass list1 = list.get(i);
                model.add(i, list1.getId());
            }

            jList1.setModel(model);
        }


    } catch (SQLException ex) {
        Logger.getLogger(ListFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
}

Класс MainClient:

public class MainClient {


private static InformationClass info = new InformationClass();
private static Socket c;
private static String text;

public static String getText() {
    return text;
}

public static void setText(String text) {
    MainClient.text = text;
}

private static PrintWriter os;
private static BufferedReader is;
static boolean closed = false;

/**
 * @param args the command line arguments
 */
public static void runAClient() {
    try {
        c = new Socket("localhost", 5050);

        os = new PrintWriter(c.getOutputStream());
        is = new BufferedReader(new InputStreamReader(c.getInputStream()));

        String teXt = getText();
        os.println(teXt);
        if(c!=null&& is!=null&&os!=null){
        String line = is.readLine();
        System.out.println("Text received: " + line);
        }


        c.close();
        is.close();
        os.close();


    } catch (UnknownHostException ex) {
        System.err.println("Don't know about host");

    } catch (Exception e) {
        System.err.println("IOException:  " + e);

    }

}


}

РЕДАКТИРОВАТЬ: Я обнаружил проблему, из-за записи MainClient.runAClient () в коде, где я должен положить его? пожалуйста, помогите мне.

1 Ответ

1 голос
/ 13 января 2010

Эта статья содержит sscce , которая иллюстрирует простой графический интерфейс клиент-сервер. Вы можете найти это поучительным. Если это так, подумайте, как бы вы исправили ошибку, обнаруженную в последней строке конструктора Echo(Kind kind).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...