Avatar billede ng-km Nybegynder
12. marts 2002 - 00:24 Der er 2 kommentarer og
1 løsning

Opdatering af JEditorPane

Jeg har lavet en HTML-fremviser vha en JEditorPane (extends JPanel), og får HTML-siderne rimeligt pænt vist. Men jeg har et problem med at der nogen gange(jeg kan ikke finde et mønster) kan gå ca 5-10 sek. fra jeg har valgt en side i en JComboBox, til den bliver vist i editoren.

Metoden updateUI() har ingen effekt.

Editoren er én af fire faneblade (tabbedPane), og hvis jeg laver et hurtigt skift frem og tilbage mellem editoren og en anden fane, kommer HTML-siden frem.

Derfor mener jeg det er et spørgsmål om at få opdateret panelet/editoren på den rigtige måde, evt fremtvinge et imiteret faneskift, men hvordan kan jeg lave en opdatering der får siden læst ind med det samme. HVER GANG ??
Avatar billede disky Nybegynder
12. marts 2002 - 07:29 #1
Prøv at smid din kode her, der kan evt være andre fejl i din kode.
Avatar billede ng-km Nybegynder
12. marts 2002 - 09:20 #2
Her er "kernen" i editoren

public void indlæsHtmlSide(int index)
{
  String filnavn = (String)fileNameVector.get(index);//index der svarer til index i combo

try
{
        URL url = new URL("file:C:\\Roflex3\\products\\" + aktivtSprog + "\\" + filnavn);
     
      if(url != null)
      {
          htmlEditorPanel.removeAll();
    htmlEditorPanel.setPage(url);
    htmlEditorPanel.setEditable(false);
    scroller = new JScrollPane();
    scroller.setBounds(3,35,780,455);
    JViewport vp = scroller.getViewport();
    vp.add(htmlEditorPanel);
    vp.setBackingStoreEnabled(false);
    this.add(scroller);
      }//if
}//try
catch (MalformedURLException e)
{
System.out.println("Malformed URL: " + e);
}//catch
catch (IOException e)
{
System.out.println("IOException: " + e);
}//catch
}//metoden indlæsHtmlSide()

public void opdater()
{
this.updateUI();
}
    /**********************************************
    inner class
    **********************************************/
       
private class ComboListener implements ActionListener
{
  public void actionPerformed(ActionEvent event)
  {               
    Object source = event.getSource();
    if(source == htlmCombo)
    {   
      if(htlmCombo.getActionCommand().equals("comboBoxChanged"))
      {               
      if(htlmCombo.getSelectedIndex() == -1)//gør ingenting hvis -1
      {/***sker kun når der skiftes sprog***/}           
      else
      {
        indlæsHtmlSide(htlmCombo.getSelectedIndex());
        opdater();
      }//else
    }//if
}//if(source == )
}//metoden actionPerformed
}//klassen

Jeg håber det kan læses og forstås
Avatar billede ng-km Nybegynder
01. december 2002 - 00:17 #3
OKAY- så tager jeg selv pointene
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