--- In jug-indonesia@yahoogroups.com, "Surya" <[EMAIL PROTECTED]> wrote:
>
> ud ak tambahin ni runnable di tempat yang disarankan.
> tambahin runnable ny benerkan seperti itu?? hehehe...
> sekarang ud bisa muncul progress barnya cuma increment barnya nggak
> keliatan jadi tiba2 langsung penuh...
> 
> wah sedikit seneng ni...^_^
> 
> yg sabar ya soalny masih pemula d java. hihi...
> 
> =======================================================
> Class : SendFile
> =======================================================
> file = fc.getSelectedFile();
> filesize = file.length();
> 
> progressBar = new ProgressBar((int) filesize);
> Thread t = new Thread(progressBar);
> t.start();
> adrProto = "btgoep://" + adr + ":" + port +
> ";authenticate=false;encrypt=false;master=false";
> 
> try {
> 
>   SwingUtilities.invokeLater(new Runnable() {
> 
>   public void run() {
>    try {
> 
>    ClientSession cs = (ClientSession) OBEXConnector.open(adrProto);
>    HeaderSet hs = cs.connect(cs.createHeaderSet());
> 
>    if (hs.getResponseCode() != ResponseCodes.OBEX_HTTP_OK)
>    {
>    JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Informasi",
> JOptionPane.ERROR_MESSAGE);
>    cs.close();
>    }
> 
>    byte objek[] = getBytesFromFile(file);
>    hs.setHeader(HeaderSet.NAME, file.getName());
>    hs.setHeader(HeaderSet.TYPE, "text");
> 
>    Operation po = cs.put(hs);
>    outputStream = po.openOutputStream();
>    ByteArrayInputStream bais = new ByteArrayInputStream(objek);
>    byte[] buffer = new byte[0xFF];
>    int i = bais.read(buffer);
>    done = 0;
>    while (i != -1) {
>    outputStream.write(buffer, 0, i);
>    done += i;                                           
>    progressBar.setValue(done);
>    i = bais.read(buffer);
>    }
>    outputStream.flush();
>    outputStream.close();
>    po.close();
> 
>    HeaderSet hsDisconnect = cs.disconnect(null);
>    if (hsDisconnect.getResponseCode() == ResponseCodes.OBEX_HTTP_OK)
>    {
>     JOptionPane.showMessageDialog(null, "File Berhasil
> dikirim","Informasi", JOptionPane.ERROR_MESSAGE);
>    } else {
>     JOptionPane.showMessageDialog(null, "File gagal
> dikirim","Informasi", JOptionPane.ERROR_MESSAGE);
>    }
>    } catch (Throwable e) {
>       e.getMessage();
>    }
>  }
> });
>    java.lang.Thread.sleep(500);
> } catch (InterruptedException e) {
> }
> =======================================================
> 
> =======================================================
> Class : ProgressBar
> =======================================================
> public class ProgressBar implements Runnable{
> 
> static JFrame frmMain;
> static Container pane;
> public static JProgressBar barDo;
> private boolean done = false;
> private int VALUE;
> private int MAX;
> 
> public ProgressBar(int mx) {
> try {
> 
> UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
> } catch (Exception e) {
> }
> 
> this.MAX = mx;
> frmMain = new JFrame("Sample progress bar application");
> frmMain.setSize(300, 100);
> pane = frmMain.getContentPane();
> pane.setLayout(null);
> frmMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> barDo = new JProgressBar(0, MAX);
> 
> pane.add(barDo);
> barDo.setBounds(10, 10, 280, 20);
> 
> frmMain.setResizable(false); //No resize
> frmMain.setVisible(true);
> 
> }
> 
> public void run() {
> while (!done) {
> if (barDo.getValue() != MAX) {
> 
> 
> barDo.setValue(getValue()); //Set value
> barDo.repaint(); //Refresh graphics
> try {
> Thread.sleep(500);
> }
> catch (InterruptedException err) {
> }
> }else{
> done = true;
> System.out.println("selesai");
> }
> }
> 
> public void setValue(int vl) {
> this.VALUE = vl;
> System.out.println(vl+" set vlue");
> }
> 
> public int getValue() {
> return VALUE;
> }
> 
> public void setMax(int mx) {
> this.MAX = mx;
> }
> 
> public int getMax() {
> return MAX;
> }
> 
> public void setMaximum(int maxi) {
> barDo.setMaximum(maxi);
> }
> 
> public int getMaximum() {
> return barDo.getMaximum();
> }
> 
> public int getValueProgress() {
> return barDo.getValue();
> }
> }
> =======================================================
>

Selamat2!! Bener tuh caranya :)

Anyway kalau progress bar kenapa tiba2 penuh itu mungkin karena proses
baca file-nya terlalu cepet buat nunjukin progress barnya jalan...
kalau elo mau bener2 ngetest progress bar elo harus kasih proses yg
bener2 berat banget... kaya loading file segede 1 megs 

Good luck!!

Donny

Kirim email ke