Swing exclude from Shape

Hallo cojack20,

soweit ich dich richtig verstanden habe, willst du also eine "cutArea()"-Methode.

Die kann man folgendermaßen implementieren:

Code:
import java.awt.Graphics;
import javax.swing.JPanel;

public class MyPanel extends JPanel{

       public MyPanel(){
       }

       public void cutArea(){
              Graphics g = getGraphics();
              g.copyArea(35, 55, 7, 8, 10, 10);
              /* 25: horizontale distanz: linke obere Ecke des Ausschnitts von linke obere Ecke  des panels
                  35: vertikale ...
                  40: weite des auszuschneidenden Bereichs
                  45: höhe ...
                  3:   horizontale Pixel um die verschoben wird
                  8:   vertikale ... 
              */
              g.clearRect(35, 55, 7, 8);
              // Eifach die ersten 4 Parameter von oben
      }
}

Man kann natürlich auch z.B. JFrame stadt JPanel benutzen.

Ein Beispiel das so wie es ist funktioniert wäre:

Code:
import java.awt.Graphics;
import javax.swing.JFrame;

public class MyFrame extends JFrame{

       public MyFrame(){
           super("MyFrame");
           setSize(100, 100);
           setLocation(100, 100);
           setResizable(false);
           setVisible(true);
       }
       
       public void paint(Graphics g){
           g.fillOval(25, 50, 15, 15);
        }

       public void cutArea(){
              Graphics g = getGraphics();
              g.copyArea(25, 35, 40, 45, 3, 8);
              g.clearRect(25, 35, 40, 45);
      }
}

Ich hab dir noch nen jar angehängt, das automatisch nach 2 sek 'cutArea' aufruft.

javaDeveloper2011
 

Anhänge

  • CutFrameExample.jar
    2,4 KB · Aufrufe: 9
Zuletzt bearbeitet:
P.S.: In professionellen IDE´s kann man Methoden nicht einzeln aufrufen,
wenn du das für 'cutArea()' machen willst kannst du BlueJ verwenden.
 
Zuletzt bearbeitet:
Zurück