Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [java]JOptionPanel

  1. #1
    Utente di HTML.it L'avatar di nicola
    Registrato dal
    May 2007
    Messaggi
    86

    [java]JOptionPanel

    ho un problema con una applicazione Client-Server realizzata con socket
    nel client io effettuo dei controlli e s si verificano errori su alcune pperazioni chiamo una classe notifica che visualizza l'errore riscontrato tramite un JOptionPanel:
    CLIENT PRIMA DELLA MODIFICA...
    codice:
    public class Notifiche 
    {
     	
    static JFrame frame =new JFrame();
    
    public static JFrame toString(int numErr,int conto)   {
    	System.out.println("effettuo la Notifica [NotificheServer](20)");
    	switch (numErr){
        case 1: JOptionPane.showMessageDialog(frame,"devi inserire tutti i campi","ERRORE!!",1); break;
        case 2: JOptionPane.showMessageDialog(frame,"salvataggio effettuato con successo","OK!!",1); break;
        
     }
    	   return frame;
          }
    nel client tutto funziona correttamente...
    successivamente ho creato l'applet per gestire il client ed ho notato che l'applet non gestisce nulla del client, l'unica cosa che fa è collegarsi al server e ricevere i dati (giustamente!), quindi ho spostato la classe notifica nel server
    ed ho modificato quella del client per fare una connessione al server e chiedere la notifica dell'errore...
    CLIENT MODIFICATO
    codice:
    public static JFrame toString(int numErr,int conto) throws IOException   {
    	   switch (numErr){
            case 1: connessioneErroriServer(1,conto); break;
            case 2: connessioneErroriServer(2,conto); break;
            ...
         }
    	   return frame;
          }
    protected static void connessioneErroriServer(int errore,int conto) throws IOException
    {
    	socket = new Socket("127.0.0.1", 7780);
        richiesta = new ObjectOutputStream(socket.getOutputStream());
        risposta = new ObjectInputStream(socket.getInputStream());
    	richiesta.writeInt(20);
    	richiesta.writeInt(errore);
    	richiesta.writeInt(conto);
    	richiesta.flush();
    	richiesta.close();
    	richiesta.close();
        risposta.close();
        socket.close();
    }
    private static Socket socket;
    private static ObjectInputStream risposta;
    private static ObjectOutputStream richiesta;
    }
    il server quindi riceve la richiesta di notifica però visualizza il JOptionPanel in maniera sbagliata... sembra che sia invisibile, e nel JOptionPanel ci sia l'immagine di quel che c'è nel frame dietro di lui invece che il messaggio...
    sapete dirmi perchè?
    allego l'immagine del JOptionPanel visualizzato non correttamente
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di nicola
    Registrato dal
    May 2007
    Messaggi
    86
    il problema forse è ke sto cercando di visualizzare un JOptionPanel in un applet sul browser... e questo forse mi da i problemi che riscontro...
    la cosa quindi penso si risolva creando un piccolo applet con all'interno il mio JOptionPanel...-
    potreste dirmi come fare questa cosa?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Per prima cosa si tratta di un JOptionPane e non di un JOptionPanel (senza la L).
    Seconda cosa... non capisco che senso ha un metodo che dovrebbe ritornare un JFrame (ma stiamo parlando di un applet... raramente si usano i JFrame nelle applet), che invece di tornare quello che dovrebbe, visualizza un JOptionPane e ritorna il nulla...
    Ad ogni modo, il primo parametro della showMessageDialog è un Component, quindi dovrebbe essere passato il riferimento alla Applet (che è un Component!!), oppure null, in modo da fargli utilizzare il default Frame interno...

    Infine, controlla di non mischiare componenti Swing con componenti AWT (la applet è una JApplet o una java.applet.Applet?)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.