Avatar billede datamatikeren Nybegynder
22. september 2003 - 08:30 Der er 11 kommentarer og
1 løsning

Progress bar vises ikke.

Jeg har et Java program som skal udføre en metode (hente data fra netværksdb), og samtidigt med dette vil jeg have den til at vise en en animation (progress) i en JDialog.
Dette virker ikke.
Hvbis jeg JDialogen UDEN at køre metoden samtidig vises animationen ok.
Hvad kan der være galt?
Avatar billede riversen Nybegynder
22. september 2003 - 08:32 #1
du skal gøre din metode i en selvstændig tråd
Avatar billede riversen Nybegynder
22. september 2003 - 08:32 #2
ellers vil den først opdatere når metoden returnerer formentlig
Avatar billede riversen Nybegynder
22. september 2003 - 08:32 #3
gøre = køre
Avatar billede datamatikeren Nybegynder
22. september 2003 - 08:34 #4
Ahh det prøver jeg lige.
Avatar billede datamatikeren Nybegynder
22. september 2003 - 08:50 #5
Er det ikke muligt at bygge tråden ind i selve klassen med min progressbar??

public class progress extends JDialog
{   
    static Image imageFile;// = "Images\\progressbar.gif";
    String tekst = "Vent Venligst..";
     
      public progress()
      {
          setSize(130,80);
          imageFile = Toolkit.getDefaultToolkit().getImage("Images\\progressbar.gif");
          center();
        setVisible(true);
          show();
      }
   
    public void paint(Graphics g)
    {
        g.drawImage(imageFile, 12, 35, this);
        g.drawString(tekst, 12,60);
    }
   
    public void setText(String txt)
    {
        tekst = txt;
        repaint();
    }

    public void lukVindue()
    {
        dispose();   
    }
   
    private void center()
    {
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
          this.setLocation( (screenSize.width-this.getWidth())/2, (screenSize.height-this.getHeight())/2 );
    }

   
    public static void main(String[] args)
    {
        new progress();
    }
}
Avatar billede riversen Nybegynder
22. september 2003 - 09:03 #6
jo noget ala

Thread t = new Thread( new Runnable()
{
  public void run()
  {
    //do what you gotta do
  }
};
);

t.start();

er ikke lige sikker på om syntaksen er helt korrekt.
Avatar billede riversen Nybegynder
22. september 2003 - 15:38 #7
wazaaa ?
Avatar billede datamatikeren Nybegynder
23. september 2003 - 09:36 #8
Har ikke fået det til at virke endnu.
Det virker fint hvis jeg ligger db-metoden i en tråd, men jeg bruger progress baren mange steder, og det ville være et kæmpe arbejde at rette alle steder.
Avatar billede datamatikeren Nybegynder
23. september 2003 - 10:20 #9
Så snart metoden er afsluttet opdateres progress vinduet korrekt.
Paster lige lidt kode.
Avatar billede datamatikeren Nybegynder
23. september 2003 - 10:24 #10
Progressklassen:
    public void run(){
        for (int i=0;i<10000;i++)
        {
            System.out.print(".");
            requestFocus();
        }
    }
    public void stop(){
        dispose();
    }

Klassen der kalder progress:
JBTOK.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
            Thread thr = new Thread( new progress());
        thr.start();
                try
                {
                String data[][] = db.hentTimerForDag(Format4(Integer.parseInt(aar[aarBox.getSelectedIndex()]))+ Format2(maanedBox.getSelectedIndex()+1) + Format2(dagBox.getSelectedIndex()+1));
                new test2(data, Format4(Integer.parseInt(aar[aarBox.getSelectedIndex()]))+ Format2(maanedBox.getSelectedIndex()+1) + Format2(dagBox.getSelectedIndex()+1));
                Runtime.getRuntime().exec("C:\\Programmer\\Internet Explorer\\IEXPLORE.EXE " + System.getProperty("user.dir") + "\\timesedler-" + Format4(Integer.parseInt(aar[aarBox.getSelectedIndex()]))+"-" + Format2(maanedBox.getSelectedIndex()+1) + "-" +  Format2(dagBox.getSelectedIndex()+1) + ".html" );
                dispose();
                }
                catch (Exception ex)
                {
                System.out.println(ex.toString());
                }
        thr.stop();
        thr = null;
                }      });

Håber ikke det forvirrer for meget.
Avatar billede datamatikeren Nybegynder
25. september 2003 - 10:24 #11
Jeg har fundet en løsning (dog ikke så god som jeg havde håbet på)
viser progress vinduet i str 250,0, derefter ændrer jeg bare på titlen af vinduet. Dette virker helt fint.
Avatar billede datamatikeren Nybegynder
13. oktober 2003 - 08:52 #12
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester