Avatar billede tula Nybegynder
02. oktober 2002 - 15:47 Der er 5 kommentarer

JEditorPane, scallering af tekst.

I mit arbejde med at lave en browser til en PDA, har jeg lavet fölgende for at indläse en URL i en JFrame:

public class MyBrowser extends JFrame implements ActionListener, HyperlinkListener{
  private JEditorPane jep;
  private JTextField enter;

  public MyBrowser(){

    super("Enter file URL here");

    Container c = getContentPane();

    enter = new JTextField();
    enter.addActionListener(this);
    c.add(enter, BorderLayout.NORTH);

    jep = new JEditorPane();
    jep.setEditable(false);
    jep.addHyperlinkListener(this);
    c.add(new JScrollPane(jep),BorderLayout.CENTER);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(240,320);
    show();
  };

  public void actionPerformed(ActionEvent e){
      getThePage(e.getActionCommand());
  };

  public void hyperlinkUpdate(HyperlinkEvent e){
    if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED){
      jep = (JEditorPane) e.getSource();
      if (e instanceof HTMLFrameHyperlinkEvent) {
        HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;
        HTMLDocument doc = (HTMLDocument)jep.getDocument();
        doc.processHTMLFrameHyperlinkEvent(evt);
      }
      else {
        try {
          getThePage(e.getURL().toString());
        }
        catch (Throwable t) {
          t.printStackTrace();
        }
      }
    }
  };


  public void getThePage(String location){
    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

    try{
      jep.setPage(location);
      enter.setText(location);
    }
    catch (Exception e){
      System.err.println("Exception: " + e);
    };

    setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
  }

  public static void main(String argv[]){
    MyBrowser app = new MyBrowser();
  };

}


Da jeg skal have scalleret indholdet ned, så det kan väre på en PDA-skärm (240,320), er jeg ude efter en metode til at göre sådan. Hvordan får jeg fat i indholdet og derefter scallerer det ned?
Avatar billede =maddog= Nybegynder
03. oktober 2002 - 12:11 #1
Prøv implicit at sætte størrelsen på jep til 240,320 (eller hvad du nu vil have). Jeg har ikke selv lavet noget lignende skal jeg hilse og sige.
Avatar billede tula Nybegynder
03. oktober 2002 - 12:58 #2
Fungerer desvärre ikke, hvis du altså mener, at jeg skal anvende "setSize". Den komprimerer stadig ikke indholdet, så det kan väre i framen.
Avatar billede carstenknudsen Nybegynder
03. oktober 2002 - 13:29 #3
For at skalere billedet skal du kopiere billedet fra JEditorPane'en
til f.eks. et JPanel eller andet under brug af en AffineTransform
hvor du kan skalere hele billedet. Du skal benytte setScale metoden
på et Graphics2D objekt som du får fra din JEditorPane.
Avatar billede tula Nybegynder
03. oktober 2002 - 14:03 #4
Får jeg så ik' et problem med at manipulere billedet bagefter?
Avatar billede carstenknudsen Nybegynder
03. oktober 2002 - 14:53 #5
Det kan da godt være. Hvis du regner med at opdatere
JEditorPane'en så skal du hvergang den ændres gentegne
din lille kopi, og JEditorPane'en skal gemmes i baggrunden,
dvs kald setVisible(false).
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