T
tuxedo
Gast
Hallo,
ich rätsel gerade warum mich die JOptionPane mich einmal mag, und einmal nicht....
Folgendes:
Ich habe eine Client-Server-RMI-Anwendung. Ein Client schickt dem anderen Client eine Nachricht. Die Client-Klasse ist recht primitiv gestrickt und erbt schlicht und einfach von JFrame. Die zu sendende Nachricht nehme ich so auf:
Die Nachricht geht auchbeim Server ein und wird an den Ziel-Client weitergereicht. Das geschieht mittels einer Callback-Klasse die der Server vin jedem Client hat. Der aufruf der Message-methode in der Callback-Klasse wird an die JFrame-Klasse weitergeleitet:
So, auf den Console seh ich insgesamt wie die Nachricht vom Client aufgenommen wird, beim Server eingeht und vom Server an den Zielclient weitergereicht wird. Am Zielclient krieg ich dann das "start" auf der Console und ein Febnster erscheint.
Aber der modale "showMessageDialog" wird nicht korrekt gezeichnet. Ich krieg nur den Titel des Fensters korrekt angezeigt. Der Rest des Fensters setzt sich aus übrlagerungen darunterliegender Fenster zusammen. Kein Button und nix ist erkennbar. Die Anwendung bleibt hängen.
Ich hab auch shcon statt dem "null" im Methodenaufruf mit "this" probiert. ABer ich krieg's nicht gebacken.
In meiner Verzweiflung hab ich dann auch probiert, statt dem Message-Dialog, nochmal den Input Dialog einzublenden. Aber sogar der "versagt".
CPU-Last ist deutlich <1% ... Weitere Threads oder so hab ich nicht die das blockieren könnten. Hat einer nen Plan warum das hängen bleibt?
- Alex
ich rätsel gerade warum mich die JOptionPane mich einmal mag, und einmal nicht....
Folgendes:
Ich habe eine Client-Server-RMI-Anwendung. Ein Client schickt dem anderen Client eine Nachricht. Die Client-Klasse ist recht primitiv gestrickt und erbt schlicht und einfach von JFrame. Die zu sendende Nachricht nehme ich so auf:
Code:
/**
* This method initializes sendMessageItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getSendMessageItem(final int targetUserId) {
sendMessageItem = new JMenuItem();
sendMessageItem.setText("send message to user"); // Generated
sendMessageItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
String msg = JOptionPane.showInputDialog("Please enter a short message", "");
client.sendMessage(targetUserId, msg);
}
});
return sendMessageItem;
}
Die Nachricht geht auchbeim Server ein und wird an den Ziel-Client weitergereicht. Das geschieht mittels einer Callback-Klasse die der Server vin jedem Client hat. Der aufruf der Message-methode in der Callback-Klasse wird an die JFrame-Klasse weitergeleitet:
Code:
public void showMessage(String title, String msg) {
System.out.println("start");
JOptionPane.showMessageDialog(null, msg, title, JOptionPane.INFORMATION_MESSAGE);
System.out.println("stop");
}
So, auf den Console seh ich insgesamt wie die Nachricht vom Client aufgenommen wird, beim Server eingeht und vom Server an den Zielclient weitergereicht wird. Am Zielclient krieg ich dann das "start" auf der Console und ein Febnster erscheint.
Aber der modale "showMessageDialog" wird nicht korrekt gezeichnet. Ich krieg nur den Titel des Fensters korrekt angezeigt. Der Rest des Fensters setzt sich aus übrlagerungen darunterliegender Fenster zusammen. Kein Button und nix ist erkennbar. Die Anwendung bleibt hängen.
Ich hab auch shcon statt dem "null" im Methodenaufruf mit "this" probiert. ABer ich krieg's nicht gebacken.
In meiner Verzweiflung hab ich dann auch probiert, statt dem Message-Dialog, nochmal den Input Dialog einzublenden. Aber sogar der "versagt".
CPU-Last ist deutlich <1% ... Weitere Threads oder so hab ich nicht die das blockieren könnten. Hat einer nen Plan warum das hängen bleibt?
- Alex