wieder ein zeichnen-problem



  • Soweit ich das jetzt mitbekommen habe kann mann nicht auf dem selben frame(applet,etc) "gleichzeitig" zeichnen und componenten darstellen. gibt es da irgendwie eine möglichkeit, das ich das realisieren kann ?

    ich hab versucht in einem frame einen InternelFrame einzufügen und auf diesem dann zu zeichen, aber was gezeichnet werden soll wird irgendwie nicht angezeigt.
    kann vieleicht daran liegen das der InternalFrame erst "selected" sein muss wenn man darauf zeichnen will. aber mit der setSelected-methode habe ich auch so meine problemchen.


  • Mod

    Original erstellt von stevg:
    **Soweit ich das jetzt mitbekommen habe kann mann nicht auf dem selben frame(applet,etc) "gleichzeitig" zeichnen und componenten darstellen. gibt es da irgendwie eine möglichkeit, das ich das realisieren kann ?
    **

    Wie meinst du das? Natürlich geht das!


  • Mod

    Beispiel :

    BackgroundImage.java :
    [java]
    import java.awt.image.BufferedImage;
    import java.util.Random;

    import javax.swing.JButton;
    import javax.swing.JFrame;

    public class BackgroundImage
    {

    public static void main(String[] args)
    {
    BufferedImage image = new BufferedImage (500,300,BufferedImage.TYPE_INT_RGB);
    Random rand = new Random ();
    for (int x = 0 ; x < image.getWidth() ; ++x)
    {
    for (int y = 0 ; y < image.getHeight() ; ++y)
    {
    image.setRGB(x,y,rand.nextInt());
    }
    }
    ImagePanel panel = new ImagePanel (image);
    JFrame frame = new JFrame ();
    frame.getContentPane().add(panel);
    JButton buttonA = new JButton ("Blah!");
    panel.add(buttonA);
    JButton buttonB = new JButton ("Blah Blah!");
    buttonB.setOpaque(false);
    panel.add(buttonB);
    frame.pack();
    frame.setVisible (true);
    }
    }[/code]

    ImagePanel.java
    [java]
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Image;
    import javax.swing.JPanel;

    public class ImagePanel extends JPanel
    {
    private Image image;

    public ImagePanel (Image image)
    {
    this.image = image;
    setPreferredSize (new Dimension (image.getWidth(null),
    image.getHeight(null)));
    }

    public void paintComponent (Graphics g)
    {
    g.drawImage(image,0,0,null);
    }
    }[/code]

    ...oder habe ich dich da falsch verstanden?



  • noch das hast du schon richtig verstanden.
    werd das mal so probieren.

    ich hatte mir das ganz einfach so gedacht:
    [java]
    public class maleMalWat extends JApplet
    {
    public void start()
    {

    JButton b = new JButton("BeendeMalWat");
    b.setSize(100,30);
    b.setLocation(100,100);
    getContentPane().add(b);

    JLabel l = new JLabel("TesteMalWat");
    getContentPane().add(l);

    Graphics g = getGraphics();
    g.drawLine(10,10,90,90);
    }
    }[/code]



  • haut hin

    [ Dieser Beitrag wurde am 04.02.2003 um 08:31 Uhr von stevg editiert. ]


Anmelden zum Antworten