Image zeichnen!



  • hallo, neues prblem:-). ich möchte ein image in einem frame zeichnen. eigentlich kein problem. ich klicke auf einen knop, dann öffnet sich ein neues frame. wie kann ich nun auf dieses frame ein image zeichnen? welche component brauch ich?

    JComponent = new ....?

    DANKE:-)



  • Du kannst auf alle Panels und Container und überhaupt zeichnen wie du lustig bist. Hauptsache du hast das dazugehörige Graphics-Objekt 🙂


  • Mod

    Ich verstehe nicht ganz, was du suchst. Sowas?
    [java]
    import java.awt.*;
    import javax.swing.JComponent;

    public class ImageComponent extends JComponent
    {
    private Image image;

    public ImageComponent (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]



  • nene, nicht so wie oben. ich habs so:

    class MenuAction implements ActionListener{
    
        JBrain jb;
        static Image image = Toolkit.getDefaultToolkit().getImage("logo.gif");
    
        static int choice = 0;
        static int ACTION = 1;
        static JFrame helpFrame=new JFrame("About JBrain Graph");
        static JComponent jc=new JPanel();
    
        public MenuAction(int choice){
            this.choice = choice;
        }
    
        public void actionPerformed(ActionEvent ae){
            menuEvent(ae);  
        }
    
        public static void menuEvent(ActionEvent action){
    
            //in cmd steht die Action aus der Menuleiste
            String cmd = action.getActionCommand();
    
            if("about".equals(cmd)){
    
                //JPanel helpOben=new JPanel();
                JPanel helpUnten=new JPanel();
                String ls=System.getProperty("line.separator");
    
                JComponent ta=new JTextArea("Dieses Programm dient der grafischen Visualisierung"+ls+" von JBrain."+ls+
                                            "Sie können sich verschiedene Begriffsverlinkungen aus der Datenbank"+ls+
                                            "einfach anzeigen lassen. Dazu einfach ni dem Textfeld oben einen"+ls+
                                            "Knotennamen eingeben. Sollte es den Begriff in der Datenbank geben,"+ls+
                                            "werden alle verlinkten Begriffe angezeigt.",12,40);
    
                JScrollPane sp=new JScrollPane(ta,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
                helpUnten.add(sp);
    
                //helpFrame.add(helpOben);
                helpFrame.getContentPane().add(helpUnten, BorderLayout.SOUTH);
                helpFrame.getContentPane().add(jc,BorderLayout.NORTH);
                helpFrame.setSize(500, 300);
                helpFrame.setVisible(true);
    
            } 
        }
    
        public void paint(Graphics g){
    
            int x=20;
            int y=20;
    
            g.drawImage(image, x, y, MenuAction.jc);
            //g.drawImage(image, x, y, this);
    
        }
    
    }
    

    so, ich hab alsoein jpanel, auf das ich zeichnen möchte, muß dann MenuAction noch von JComponent erben?

    DANKE:-)


Anmelden zum Antworten