Avatar billede willi Nybegynder
18. juni 2004 - 09:09 Der er 8 kommentarer og
2 løsninger

java awt flyt nul point

Allerførst:
Bruges awt stadig eller er der noget andet? Den bog jeg sidder med er fra 97 og har ikke kunne finde noget senere.
Java Swing anvendes vist. Men det er mere componenter og lign. Jeg har brug for kunne tegne.
Jeg har denne kode:
import java.applet.*;
import java.awt.*;

public class drawLine5 extends Applet
{

   
        public void paint(Graphics g) 
        {
           
    for(int i = 180; i <=350 ; i++)//positiv x
            {    g.drawLine(xZ,yZ,i,yZ);
            }
        for(int i = 180; i <=350 ; i++)//positiv y
            {    g.drawLine(xZ,yZ,xZ,i);
            }
        for(int i = 180; i >=10 ; i--)//negativ x
            {    g.drawLine(xZ,yZ,i,yZ);
            }
            for(int i = 180; i >=10 ; i--)//negativ y
            {    g.drawLine(xZ,yZ,xZ,i);
            }
   
    }
   
}

Her vil jeg, istedet for angive 180 gerne have flyttet punkt 0,0 (øverste venstre hjørne som standard) til punkt 180,180.

Der er en metode, translate, men hvordan implementeres den i min kode?
Avatar billede _carsten Nybegynder
18. juni 2004 - 09:31 #1
Du behøver selvfølgelig ikke smide bogen ud - men læg den væk.

Alternativerne er på nettet er Sun's tutorial, http://javabog.dk, http://www.docjava.dk + et væld af andre muligheder

Mht. translate()

Så er det så vidt jeg lige husker

        public void paint(Graphics g) 
        {
        g.translate(180,180);
        for(int i = 180; i <=350 ; i++)//positiv x
            {    g.drawLine(xZ,yZ,i,yZ);
            }
        for(int i = 180; i <=350 ; i++)//positiv y
            {    g.drawLine(xZ,yZ,xZ,i);
            }
        for(int i = 180; i >=10 ; i--)//negativ x
            {    g.drawLine(xZ,yZ,i,yZ);
            }
            for(int i = 180; i >=10 ; i--)//negativ y
            {    g.drawLine(xZ,yZ,xZ,i);
            }
   
    }
Avatar billede arne_v Ekspert
18. juni 2004 - 09:53 #2
Man bruger AWT hvis man f.eks. laver applets der skal kunne køre på MS JVM.

Normalt vil man foretrække Swing fremfor AWT hvis det er muligt, men da
Swing bruger AWT, så forsvinder AWT ikke.
Avatar billede willi Nybegynder
18. juni 2004 - 10:52 #3
Ufatteligt. Jeg mener jeg har skrevet det mange gange Carsten. Men det virker nu.
Jeg ser på dine link og er bekræftet arne_v. Det er kun nogle kort udsnit m.v. jeg anvender awt til så fordi Swing ikke uden awt byder på muligheden for tegne.
Sender i et svar?
Avatar billede _carsten Nybegynder
18. juni 2004 - 11:01 #4
Kommer her.

NB: Du kan sagtens tegne i Swing.
Avatar billede arne_v Ekspert
18. juni 2004 - 11:06 #5
svar
Avatar billede arne_v Ekspert
18. juni 2004 - 11:07 #6
Der er udgivet en hel del bøger om Swing programmering. Prøv og søg på
Amazon.
Avatar billede willi Nybegynder
18. juni 2004 - 11:38 #7
Arne> Ja. Jeg har købt to Java Swing(Robinson/Vorebiev & Loy/Eckstein m.f. som var på tilbud sammen).
Carsten> Hvad skal jeg "jagte" i swing hvis jeg ønsker at tegne? Jeg mener at jeg "havner" i awt.
Avatar billede _carsten Nybegynder
18. juni 2004 - 12:01 #8
Teorien er faktisk den samme som i AWT, så - ja man kan godt sige du "havner" i AWT

Du extender JFrame istedet for Applet, adder et JPanel til din JFrame
  getContentPane().add(panel);
og tegner på dit JPanel.

Fandt et eksempel jeg lavede en gang, måske kan det inspirere:
  http://www.eksperten.dk/spm/387331 kommentar 22/08-2003 23:00:28
Avatar billede _carsten Nybegynder
18. juni 2004 - 12:09 #9
UPS, du skal bruge en frame til at putte modulet i, den kommer her

public class ModulTest extends javax.swing.JFrame {
   
    /** Creates new form ModulTest */
    public ModulTest() {
        initComponents();
        modul = new Modul();
        setSize(500,500);
        show();
        jPanel1.add(modul);
        jPanel1.paintComponents(jPanel1.getGraphics());;
    }
   

    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();

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

        jPanel1.setLayout(null);

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

        pack();
    }
   

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

    public static void main(String args[]) {
        new ModulTest();
    }
   
    private javax.swing.JPanel jPanel1;
    private Modul modul;
}
Avatar billede willi Nybegynder
18. juni 2004 - 12:26 #10
Det er bestemt, som den anden exp bruger også skrev, til inspiration.
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