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?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
22. september 2003 - 08:32
#1
du skal gøre din metode i en selvstændig tråd
22. september 2003 - 08:32
#2
ellers vil den først opdatere når metoden returnerer formentlig
22. september 2003 - 08:32
#3
gøre = køre
22. september 2003 - 08:34
#4
Ahh det prøver jeg lige.
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(); } }
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.
22. september 2003 - 15:38
#7
wazaaa ?
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.
23. september 2003 - 10:20
#9
Så snart metoden er afsluttet opdateres progress vinduet korrekt. Paster lige lidt kode.
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.
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.
13. oktober 2003 - 08:52
#12
lukker
Kurser inden for grundlæggende programmering