Avatar billede repsak Nybegynder
15. december 2003 - 20:54 Der er 4 kommentarer og
1 løsning

Tegne på JEditorPane

Jeg har et tabbedpane med 2 faner.
problemet ligger i at jeg skal tegne på en editorpane som ligger på fane 2. Det sker med følgende kode:

public void paint(Graphics g){
  super.paint(g);
  g=editorpane_Graph.getGraphics();
  g.setColor(Color.RED);
  g.drawString("Kasper",30,30);
}

problemer er blot at jeg først kan se resultatet efter at have først et andet vindue henover (=repaint)
Avatar billede _carsten Nybegynder
15. december 2003 - 21:03 #1
Så vidt jeg husker er det JEditorPane's paintComponent du skal override
Avatar billede repsak Nybegynder
15. december 2003 - 21:08 #2
hvordan? Følgende virker ikke, men det er vist heller ikke det du mener. Denne klasse arver fra JPanel, hvis det spiller en rolle
public void paintComponent (Graphics g){
  super.paintComponent (g);
  g=editorpane_Graph.getGraphics();
  g.setColor(Color.RED);
  g.drawString("Kasper",30,30);
}
Avatar billede _carsten Nybegynder
15. december 2003 - 21:16 #3
Desværre - jeg bange for at jeg er på dybt vand her !!!
Avatar billede _carsten Nybegynder
15. december 2003 - 21:31 #4
Det lykkedes - du skal lave en klasse som extender JEditorPane, i den skal du override paintChildren() og adde den til din fane


import java.awt.*;

public class JFrame_4 extends javax.swing.JFrame {

    public JFrame_4() {
        initComponents();
        setSize(500,500);
    }
   
    private void initComponents() {
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jButton1 = new javax.swing.JButton();
        editor1 = new Editor();

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jButton1.setText("jButton1");
        jTabbedPane1.addTab("tab1", jButton1);

        jTabbedPane1.addTab("tab2", editor1);

        getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        pack();
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

    public static void main(String args[]) {
        new JFrame_4().show();
    }

    private Editor editor1;
    private javax.swing.JButton jButton1;
    private javax.swing.JTabbedPane jTabbedPane1;
}




class Editor extends javax.swing.JEditorPane {
 
    public Editor() {
    }
   
    public void paintChildren(java.awt.Graphics g){
        g.setColor(Color.BLACK);
        g.drawString("ABEKAT",  150,150);
    }
       
}
Avatar billede repsak Nybegynder
17. december 2003 - 18:15 #5
Det virker jo perfekt - tak for hjælpen :-)
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