salve a tutti. anzitutto vi saluto e mi congratulo con il team di html.it per l'ottimo sitoè da un po' che seguo questo forum ed ho sempre trovato risposta alle mie domande senza dover creare topic inutili. ora pero' non riesco a trovare quello che sto cercando, quindi mi sono deciso a registrarmi =)
allora: sto creando un programma di tipo client/server che si occupa di inviare file da un pc all'altro...niente di che insomma. Per ora mi sono ancora ad uno stadio piuttosto arretrato diciamo...fatto tutto di base (implementazione algoritmo RS con tutto quello che ne consegue (matrici, polinomi, ecc) e ora mi sto dedicando all'interfaccia grafica prima di passare a creare il vero e proprio "server"). Il problema di fronte al quale mi trovo potrebbe sembrare stupido, ma proprio non riesco a venirne a capo...ho sempre odiato la parte grafica, sarà perchè i bottoni non vanno mai dove voglio iosiccome questo approccio richiede un lavoro piuttosto impegnativo per codificare e decodificare i pacchetti mi è venuto in mente di applicare una semplice JProgressBar giusto per ingannare il tempo che passa. Ora pero' leggendo l'api mi sono reso conto che per farne una che "va a percentuale" dovrei apportare alcune modifiche alla base, quindi pensavo di mettere un semplice contatore che appare in basso a destra della finestra e che calcola il tempo trascorso dal momento in cui premo il bottone per far partire l'encoding a quando questo viene ultimato. Solo che non sono riuscito a trovare niente che potesse essermi utile, tutto cio' che ho trovato rinvia alla progressbar (la quale, anche mettendola come indeterminata (senza percentuale) non fa quello che dovrebbe
). qualcuno potrebbe darmi una dritta? vi passo una parte di codice già scritto per l'interfaccia grafica:
codice:private FinestraApplicazione () { GrandezzaFinestra finestra = new GrandezzaFinestra(0.5, 0.2); setSize(finestra.getWidth(), finestra.getHeight()); setLocationRelativeTo(null); setTitle(title); jp = new JPanel(); textArea = new JTextField((int)(finestra.getWidth() / 15)); searchButton = new JButton("Search"); encodeButton = new JButton("Encode File"); decodeButton = new JButton("Decode File"); saveToFileButton = new JButton("Save Output To File"); encodeButton.setEnabled(false); decodeButton.setEnabled(false); saveToFileButton.setEnabled(false); searchButton.addActionListener(this); encodeButton.addActionListener(this); decodeButton.addActionListener(this); saveToFileButton.addActionListener(this); jp.add(searchButton); jp.add(textArea); jp.add(encodeButton); jp.add(decodeButton); jp.add(saveToFileButton); add(jp); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == searchButton) { int returnVal = fileChooser.showOpenDialog(getParent()); if(returnVal == JFileChooser.APPROVE_OPTION) { filePath = fileChooser.getSelectedFile().getAbsolutePath(); textArea.setText(filePath); encodeButton.setEnabled(true); } } if(e.getSource() == encodeButton) { FileToSend filetosend = new FileToSend(filePath); decodeButton.setEnabled(true); } if(e.getSource() == decodeButton) { saveToFileButton.setEnabled(true); } if(e.getSource() == saveToFileButton) { } }
ps: avete qualche consiglio per modificare i listener? metterli tutti in uno non mi piace molto "esteticamente"

è da un po' che seguo questo forum ed ho sempre trovato risposta alle mie domande senza dover creare topic inutili. ora pero' non riesco a trovare quello che sto cercando, quindi mi sono deciso a registrarmi =)
siccome questo approccio richiede un lavoro piuttosto impegnativo per codificare e decodificare i pacchetti mi è venuto in mente di applicare una semplice JProgressBar giusto per ingannare il tempo che passa. Ora pero' leggendo l'api mi sono reso conto che per farne una che "va a percentuale" dovrei apportare alcune modifiche alla base, quindi pensavo di mettere un semplice contatore che appare in basso a destra della finestra e che calcola il tempo trascorso dal momento in cui premo il bottone per far partire l'encoding a quando questo viene ultimato. Solo che non sono riuscito a trovare niente che potesse essermi utile, tutto cio' che ho trovato rinvia alla progressbar (la quale, anche mettendola come indeterminata (senza percentuale) non fa quello che dovrebbe
). qualcuno potrebbe darmi una dritta? vi passo una parte di codice già scritto per l'interfaccia grafica:
Rispondi quotando