Paint Editor Programm

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
So hi, wie könnte ich in den folgenden Code eine methode einbauen, damit "Graphics g" wenn ich auf das menu item "circle1" einen Kreis zeichnet, ??? ???:L
Kann mir einer helfen?
Code:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.NumberFormat;
import javax.imageio.ImageIO;
import javax.swing.*;

/* -------------------------------
   Main Frame in program PaintShop
   -------------------------------*/
   public class PaintShop extends JFrame
                          implements MouseListener, MouseMotionListener {
	static int outFileSeq = 0;
	static String outFileBase = "ScreenShot.Race_Alpträume_";
	static NumberFormat nf = NumberFormat.getInstance();

	static int circleradius = 0;
   private Color color = Color.blue;
   private DrawingPanel drawingPanel;

   public PaintShop()
   {
      super( "PaintShop first version" );     

      Container c = getContentPane( );
      c.setLayout (null);
//////////////////////////////////////////////
      JMenuBar a = new JMenuBar();
      a.setBounds(0,0,750,20);
      add(a);
      JMenu start = new JMenu("Start");
      a.add(start);
      
      JMenuItem save = new JMenuItem("Unter ''C:/Math/Data'' Speichern");
      start.add(save);
      save.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e)
      { BufferedImage bi = null;
	try {
		bi = new Robot().createScreenCapture(
				    new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
	} catch (HeadlessException e2) {
		// TODO Auto-generated catch block
		e2.printStackTrace();
	} catch (AWTException e2) {
		// TODO Auto-generated catch block
		e2.printStackTrace();
	}
  	
	  nf.setMaximumFractionDigits(10);
	try {
		ImageIO.write( bi, "jpg", new File("F:/"+	  outFileBase + nf.format(outFileSeq++)+".arschloch"));
	} catch (IOException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}}});
      
      JMenuItem exit = new JMenuItem("Beenden");
      start.add(exit);
      exit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e)
  	  {setVisible(false);}});
      //
      JMenuBar Circle = new JMenuBar();
      Circle.setBounds(0,20,750,20);
      add(Circle);
      
      JMenu Circle1 = new JMenu("Kreis zeichen");
      Circle.add(Circle1);
      JMenu CircleSize = new JMenu("Kreis Radius");
      Circle.add(CircleSize);
      JMenuItem a1 = new JMenuItem("Kreis Zeichnung bestätigen");
      Circle1.add(a1);
      a1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e)
  	  {circleradius=1;}});
   
//////////////////////////////////////////////
      

      drawingPanel = new DrawingPanel(0,0);
      
      drawingPanel.setBounds(0,0,750,500);
      addMouseListener(this);
      addMouseMotionListener(this);

      c.add(drawingPanel);

      setSize( 750, 500 );
      setVisible(true);
   }

/* ------------------------------
   Listening for mouse activities
   ------------------------------*/
   public void mouseClicked ( MouseEvent e )
   {
   }

   public void mouseEntered ( MouseEvent e )
   {
   }

   public void mouseExited ( MouseEvent e )
   {
   }

   public void mousePressed ( MouseEvent e )
   {
      drawingPanel.setPaint();
   }

   public void mouseReleased ( MouseEvent e )
   {
      drawingPanel.setNotPaint();
   }

/* -----------------------------
   Listening for mouse movements
   -----------------------------*/
   public void mouseMoved ( MouseEvent e )
   {
   }

   public void mouseDragged ( MouseEvent e )
   {
      drawingPanel.setX( e.getX() );
      drawingPanel.setY( e.getY() );
      drawingPanel.paintComponent(getGraphics());
   }

/* ---------------------------------------
   Class DrawingPanel
   This Panel is used to draw a picture on
   ---------------------------------------*/
   private class DrawingPanel extends JPanel {
      private int       xValue;
      private int       yValue;
      private boolean   paint;

      public DrawingPanel(int x, int y) {
         xValue   = x;
         yValue   = y;
         paint    = false;
      }

      public void setX(int x) {
         xValue = x;
      }

      public void setY(int y) {
         yValue = y;
      }

      public void setPaint() {
         paint = true;
      }

      public void setNotPaint() {
         paint = false;
      }

      public void paintComponent(final Graphics g)
      {
    	  g.setColor(color);
    	  g.drawLine(xValue, yValue, 4, 4);    	  
      }
     
   }

/* -----------
   MainProgram
   -----------*/
   public static void main( String args[] )
   {
      PaintShop app = new PaintShop();

      app.addWindowListener(
         new WindowAdapter()
         {
            public void windowClosing( WindowEvent e )
            {
               System.exit(0);
            }
         }
      );
   }
}
 
S

Spacerat

Gast
Weiss jetzt nicht, ob das von vornherein verstanden wird. Dem Graphic-Kontext müssen ja die Koordinaten des Mittelpunktes und der Radius des Kreises bekannt sein. Deswegen ist es Sinnvoll eine Klasse eines (Kreis)Elements anzulegen und in einer Elementliste abzulegen, die wärend der Paintmethode abgearbeitet wird. So lassen sich am Ende nicht nur Kreise zeichnen, sondern auch andere Konstrukte.

mfg Spacerat
 

hdi

Top Contributor
Code:
drawingPanel.paintComponent(getGraphics());

...die paintComponent Methode ruft man niemals selber auf, immer nur

Code:
drawingPanel.repaint();

verwenden. Die ruft automatisch paintComponent mit einem passenden Graphics-Objekt auf.
Aber das steht sicher auf in dem Link von André, den du komplett lesen solltest.

Noch ein Tipp: Es würde nicht schaden den Code schöner zu formatieren.
Wenn du Eclipse nutzt tut es ein STRG+F. Auch ohne IDE (oder erst Recht dann) solltest du
sowas wie

Code:
}}});

nicht drinnen haben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Paint Component Problem Allgemeine Java-Themen 4
S Array Fehler in Paint-Methode Allgemeine Java-Themen 2
R Vererbung - doppelte Paint-Methode Allgemeine Java-Themen 4
H GUI: RectangleDrawer - zu viele Elemente im Vector für die paint-Methode Allgemeine Java-Themen 6
MQue update/paint Allgemeine Java-Themen 7
J Java und Paint? Allgemeine Java-Themen 2
H Sinusähnliche Kurve mit Paint zeichnen! Allgemeine Java-Themen 3
M Frage zur Paint()-Methode Allgemeine Java-Themen 3
conan2 Performance von paint() Allgemeine Java-Themen 2
R Übergabe und Autostart von Paint Allgemeine Java-Themen 4
B Java "paint"? Allgemeine Java-Themen 3
J Array an paint übergeben Allgemeine Java-Themen 6
T Rechtecke usw mit Paint auf Panel zeichnen Allgemeine Java-Themen 5
J Fenster mit paint Methode selbst zeichnen Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
S Java öffnet immer im editor Allgemeine Java-Themen 1
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
J JDK installieren Das Jdk funtioniert beim Editor nicht. Allgemeine Java-Themen 3
B Eclipse Ekit-Editor einfügen Allgemeine Java-Themen 0
A Debugger im Java-Editor funktioniert nicht Allgemeine Java-Themen 5
S BMI Rechner mit eclipse Visual Editor (Seperates Fenster) Allgemeine Java-Themen 7
L Gibt es in Java einen Property Editor? Allgemeine Java-Themen 2
A BlueJ Java Frame Java Editor --> Bluej / String title Allgemeine Java-Themen 8
B Editor - Zeilenumbrüche checken Allgemeine Java-Themen 8
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
achillesat Rich Text Editor Allgemeine Java-Themen 2
S Textdatei mit externen Editor öffnen Allgemeine Java-Themen 8
F Ordner auslesen und in Editor ausgeben Allgemeine Java-Themen 7
MQue Renderer und Editor Allgemeine Java-Themen 2
D mit Java das Programm "Editor" öffnen Allgemeine Java-Themen 7
T Der Java-Editor kompiliert nicht... Allgemeine Java-Themen 7
M Visual Editor für Web und RCP Allgemeine Java-Themen 6
B Text-Editor Komponente Allgemeine Java-Themen 2
G problem mit java-editor Allgemeine Java-Themen 4
G editor area.eclipse rcp Allgemeine Java-Themen 19
I Wie externen Editor Starten Allgemeine Java-Themen 2
S HTML-Editor schreiben Allgemeine Java-Themen 6
G emf editor. Allgemeine Java-Themen 6
A text in editor speichern Allgemeine Java-Themen 2
S Java Editor einstellungen Allgemeine Java-Themen 4
S einfachen editor für source code Allgemeine Java-Themen 13
G Plugin (Visual Editor) in Eclipse einfügen Allgemeine Java-Themen 2
J java beans property editor Allgemeine Java-Themen 3
F Eclipse Visual Editor Probleme Allgemeine Java-Themen 8
N Probleme mit Java Editor - Funktioniert gar nicht Allgemeine Java-Themen 4
S Java Editor Allgemeine Java-Themen 10
N Suche HTML WYSIWYG Editor als Komponente Allgemeine Java-Themen 2
T Java Editor, Java Allgemeine Java-Themen 6
K Welchen Editor? Allgemeine Java-Themen 31
M Bitte Testen: Mein Multi-File Editor Allgemeine Java-Themen 30
E Visueller Editor für Druckformulare - Plugin für Eclipse Allgemeine Java-Themen 2
S welchen editor Allgemeine Java-Themen 5
S Text Editor Allgemeine Java-Themen 2
8 Editor für Programmablaufpläne Allgemeine Java-Themen 9
S Struktogramm-Editor Allgemeine Java-Themen 12
C Grafik Editor in Java Allgemeine Java-Themen 2
M Problem mit Eclipse und dem Visual Editor Allgemeine Java-Themen 2
S Welchen Editor soll man für Graphische lösungen benutzen Allgemeine Java-Themen 2
S Vielleicht OT aber dringend: Java Editor JAMBA gesucht Allgemeine Java-Themen 2
S Eigener Editor Allgemeine Java-Themen 7
O standard text editor starten Allgemeine Java-Themen 7
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben