Avatar billede sago Nybegynder
19. juni 2002 - 00:59 Der er 3 kommentarer og
1 løsning

Graphics klassen

Hej

Jeg forstår ikke hvordan det virker... Jeg har prøvet på Suns side, jeg har læst jeg ved ikke hvor mange spørgsmål her på E, og jeg har læst "guides"... men ikke et sted har jeg kunnet finde et konkret eksempel på hvordan man kan indsætte noget grafik (bare en streng med drawString(), så burde det være til at finde ud af derfra) i en frame (eller panel) vha. x og y koordinater.

Er der nogen der lige har et kode eksempel, der viser det på en god måde? Jeg forstår ikke hvordan man bruger det med Graphics... alle metoderne jeg har set, skal bruge et Graphics objekt som argument, men Graphics er jo abstract.
Avatar billede sago Nybegynder
19. juni 2002 - 01:05 #1
Jeg vil gerne bruge Graphics2D klassen, men for at bruge den skal man vidst caste et Graphics objekt, så...
Avatar billede uffehellum Nybegynder
19. juni 2002 - 01:23 #2
Du er nødt til at tænke omvendt.  Ligesom i Win31 og Win32, skal du tegne, når styresystemet beder dig om det. 

Hvis du laver en Canvas, så kan du reagere på paint(Graphics) metoden.

MVH Uffe.

import java.awt.Canvas;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class G {
    public static void main(String[] a) {
        Frame f = new Frame();
        f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        f.add(new Canvas() {
                public void paint(Graphics g) {
                    g.drawString("a", 10, 10);
                }
            });
        f.setSize(100, 100);
        f.setVisible(true);
    } // main
} // G
Avatar billede sago Nybegynder
19. juni 2002 - 19:41 #3
Aha... tak.

Men jeg forstår stadig ikke hvor Graphics g kommer fra?
Avatar billede sago Nybegynder
19. juni 2002 - 20:02 #4
Det virker fint med en Frame, men hvad hvis jeg skal bruge det i en JFrame?

Her er min kode

import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics.*;

public class TestBoundary extends JFrame {
 
    JPanel jPanelMain = new JPanel();
      FlowLayout flowLayout1 = new FlowLayout();    
   
   
    public TestBoundary() {
        super();
       
        try  {
            jbInit();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
       
          this.setSize(new Dimension(542, 474));
          this.setTitle("Title");
       
        this.getContentPane().add(new Canvas() {
                public void paint(Graphics g) {
                    g.drawString("a", 10, 10);
                }
            });
   
        jPanelMain.setLayout(flowLayout1);
        this.getContentPane().add(jPanelMain, null);
    }
}
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