Kreise zeichnen

mimix

Aktives Mitglied
Hallo,
Ich möchte statt einen Text, einen Kreis im Panel zeichnen.
Wie kann ich das tun?

Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.MatteBorder;


public class Main extends JFrame
{
	
	
	public Main(){
	JPanel gridLayout = new JPanel( new GridLayout(10, 10, 2, 2) );
	gridLayout.setBackground( Color.BLACK );
	gridLayout.setBorder(new MatteBorder(1,1,1,1, Color.RED));
	
	for (int i=0; i<100 ; i++){
		
	JLabel label = new JLabel();
		label.setText(""+i);
		label.setOpaque(true);
		gridLayout.add(label);
	}
	add(gridLayout);
	}
	
	public void zeichne(Graphics g){
		g.drawRect(10, 10, getWidth(), getHeight());
	}
    public static void main(String[] args)
    {
    	Main frame= new Main();
    	frame.pack();
    	frame.setVisible(true);
    }
}

Vielen Dank :D
 

Michael...

Top Contributor
Wo und anstelle welchen Textes.
In Swing kann man zeichnen, in dem man eine eigene Klasse von JPanel oder JComponent erben lässt und deren paintComponent(Graphics g) überschreibt. Darin kann man mit dem darin übergebenen Graphics Objekt beliebig zeichnen (siehe API Doku zur Klasse Graphics)
 

earlgrey_tea

Aktives Mitglied
Willst du den Kreis in deinem [JAPI]JFrame[/JAPI] zeichnen? Falls ja dann hab ich dir unten mal den Quelltext angehängt.

Eine Frage hab ich aber noch:
  1. Wo rufst du die Methode
    Code:
    zeichnen(Graphics g)
    auf?
  2. Warum zeichnet die ein Rechteck, wenn du doch einen Kreis haben willst?

Java:
package paintBeispiele;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.MatteBorder;

@SuppressWarnings("serial")
public class KreisInButton extends JFrame {

	public KreisInButton() {
		JPanel gridLayout = new JPanel(new GridLayout(10, 10, 2, 2));
		gridLayout.setBackground(Color.BLACK);
		gridLayout.setBorder(new MatteBorder(1, 1, 1, 1, Color.RED));

		for (int i = 0; i < 100; i++) {

			JLabel label = new JLabel();
			label.setText("" + i);
			label.setOpaque(true);
			gridLayout.add(label);
		}
		add(gridLayout);
	}

	@Override
	public void paint(Graphics g){
		super.paintComponents(g);
		Insets inset = getInsets();
		g.drawOval(inset.left, inset.top, getWidth() - inset.right, getHeight() - 30 );
	}

	public static void main(String[] args) {
		KreisInButton frame = new KreisInButton();
		frame.pack();
		frame.setVisible(true);
	}

}
 

mimix

Aktives Mitglied
Die Rechtecke sind Labels.
Ja, so sollte es aussehen, aber ich möchte in jedem Label ein Kreis zeichnen. Ich bin seit Stunden dran aber bekomme leider nichts hin. :(

Vielen Dank
 

earlgrey_tea

Aktives Mitglied
Auf die Gefahr hin, dass ich mich wiederhole, aber deine Methode
Code:
zeichnen(Graphics g)
wird IMO nie aufgerufen. Ansonsten frag doch mal die Allwissende Müllkippe nach "Zeichnen im Label" oder ähnliches Zeugs.
 

earlgrey_tea

Aktives Mitglied
TaDa!:

Java:
package paintBeispiele;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.MatteBorder;

@SuppressWarnings("serial")
public class KreisInButton extends JFrame {

	public KreisInButton() {
		JPanel gridLayout = new JPanel(new GridLayout(10, 10, 2, 2));
		gridLayout.setBackground(Color.BLACK);
		gridLayout.setBorder(new MatteBorder(1, 1, 1, 1, Color.RED));

		for (int i = 0; i < 100; i++) {

			JLabel label = new MyLabel();
			label.setText("" + i);
			label.setOpaque(true);
			gridLayout.add(label);
		}
		add(gridLayout);
	}

	@Override
	public void paint(Graphics g){
		super.paint(g);
		Insets inset = getInsets();
		g.drawOval(inset.left, inset.top, getWidth() - inset.right, getHeight() - 30 );
	}
	
	public class MyLabel extends JLabel {
		
		@Override
		public void paint(Graphics g) {
			super.paint(g);
			g.drawOval(1, 1, getWidth(), getHeight());
		}
	}

	public static void main(String[] args) {
		KreisInButton frame = new KreisInButton();
		frame.pack();
		frame.setVisible(true);
	}

}


Etwas kürzer, und ggf. eleganter (ohne den großen Kreis):

Java:
package paintBeispiele;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.MatteBorder;

@SuppressWarnings("serial")
public class KreisInButton extends JFrame {

	public KreisInButton() {
		JPanel gridLayout = new JPanel(new GridLayout(10, 10, 2, 2));
		gridLayout.setBackground(Color.BLACK);
		gridLayout.setBorder(new MatteBorder(1, 1, 1, 1, Color.RED));

		for (int i = 0; i < 100; i++) {

			JLabel label = new JLabel() {
				@Override
				public void paint(Graphics g) {
					super.paint(g);
					g.drawOval(1, 1, getWidth(), getHeight());
				}
			};

			label.setText("" + i);
			label.setOpaque(true);
			gridLayout.add(label);
		}
		add(gridLayout);
	}


	public static void main(String[] args) {
		KreisInButton frame = new KreisInButton();
		frame.pack();
		frame.setVisible(true);
	}

}

Spiel am besten noch ein wenig mit den Werten rum, aber so ähnlich sollte deine Lösung dann letzten Endes auch aussehen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Swing Kreise auf JPanel zeichnen AWT, Swing, JavaFX & SWT 11
M In einem JLabel Kreise zeichnen AWT, Swing, JavaFX & SWT 4
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
G AWT AWT Kreise permanent anzeigen AWT, Swing, JavaFX & SWT 3
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
P Bestimmte Kreise färben AWT, Swing, JavaFX & SWT 3
wolfgang63 JavaFX Animation, Kreise im vorgegebem Takt durchs Fenster laufen lassen AWT, Swing, JavaFX & SWT 3
J Swing Bild laden, Kreise drin malen, Schreiben AWT, Swing, JavaFX & SWT 2
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
M Kreise anklicken (Farbänderung) AWT, Swing, JavaFX & SWT 2
P Kreise Rechtecke AWT, Swing, JavaFX & SWT 5
1 GeneralPath-Kreise werden keine Kreise AWT, Swing, JavaFX & SWT 2
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX Canvas neu zeichnen anstoßen AWT, Swing, JavaFX & SWT 34
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
W JavaFX Ich kann keinen Kreis richtig zeichnen AWT, Swing, JavaFX & SWT 8
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
G Dreieck aus Pixeln zeichnen AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
Z Swing Graph zeichnen lassen AWT, Swing, JavaFX & SWT 16
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
L Swing zeichnen AWT, Swing, JavaFX & SWT 14
S GUI Kreuz zeichnen und Position ausgeben AWT, Swing, JavaFX & SWT 3
S GUI Kreis zeichnen AWT, Swing, JavaFX & SWT 13
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
L Swing Ein Rechteck in ein Grid Zeichnen AWT, Swing, JavaFX & SWT 5
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
E Transparent zeichnen AWT, Swing, JavaFX & SWT 2
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T Tic Tac Toe - GUI Linien zeichnen AWT, Swing, JavaFX & SWT 14
C Applet Zeichnen über Button-Click AWT, Swing, JavaFX & SWT 13
Soloeco Graph zeichnen AWT, Swing, JavaFX & SWT 1
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
D Quadrat, Rechteck zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
A Swing JRadioButton zeichnen nicht AWT, Swing, JavaFX & SWT 4
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
P 2D-Grafik Bogen(Arc) zwischen zwei Punkten zeichnen AWT, Swing, JavaFX & SWT 2
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
KilledByCheese Swing 2D JLabel Array Maze zeichnen AWT, Swing, JavaFX & SWT 2
S Parallele Linien zeichnen AWT, Swing, JavaFX & SWT 5
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
P AWT Canvas freihändig zeichnen AWT, Swing, JavaFX & SWT 1
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6
S passende PaintComponent ? Zeichnen in TextArea mit Scrollpane ? AWT, Swing, JavaFX & SWT 2
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
L JavaFX JavafX Timelime zeichnen und schön stylen? AWT, Swing, JavaFX & SWT 2
I JFrame neu zeichnen, nicht überzeichnen! AWT, Swing, JavaFX & SWT 2
I Spielsteine zeichnen und entfernen AWT, Swing, JavaFX & SWT 3
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
H Swing BufferedImage zeichnen AWT, Swing, JavaFX & SWT 1
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
S 2D-Grafik MouseDragged Linien zeichnen AWT, Swing, JavaFX & SWT 4
M Zeichnen ohne vorherige Linien zu löschen AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
T Swing / Kreis zeichnen AWT, Swing, JavaFX & SWT 2
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
I Pfeil zeichnen am Ende einer Linie AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Inhalt eines Graphics in anderes Graphics zeichnen.... AWT, Swing, JavaFX & SWT 3
F Zeichnen des Button AWT, Swing, JavaFX & SWT 4
B Zeichnen mit paintComponent? Oder anders? AWT, Swing, JavaFX & SWT 15
C Swing Aus verschiedenen Klassen zeichnen. AWT, Swing, JavaFX & SWT 2
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
M Kein Zeichnen der Figuren auf JPanel AWT, Swing, JavaFX & SWT 4
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
G Zeichnen auf eine schwergewichtige Komponente? AWT, Swing, JavaFX & SWT 0
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
P SWT Nebula Gallery - Bildbereiche zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
A 2D-Grafik Zeichnen einer sich bewegenden Box mit BufferStrategy zieht Spur AWT, Swing, JavaFX & SWT 2
T AWT Bild laden und transparent zeichnen AWT, Swing, JavaFX & SWT 2
Helgon Swing Mit Swing zeichnen / NetBeans GUI AWT, Swing, JavaFX & SWT 11
M JLabel über JButtons zeichnen AWT, Swing, JavaFX & SWT 4
J JApplet und Zeichnen AWT, Swing, JavaFX & SWT 8
P 2D-Grafik NPE beim Zeichnen auf Graphics g AWT, Swing, JavaFX & SWT 8
4 Swing Graphen selber zeichnen AWT, Swing, JavaFX & SWT 2
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
T Zeichnen von getSubimage funktioniert nicht AWT, Swing, JavaFX & SWT 7
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
N JPanel neu zeichnen AWT, Swing, JavaFX & SWT 10
D Zeichnen eines Barplots AWT, Swing, JavaFX & SWT 2
bluerob Problem beim Image zeichnen via andere Klasse AWT, Swing, JavaFX & SWT 7
M Swing JFrame in einem Panel zeichnen AWT, Swing, JavaFX & SWT 3
M Suche Javabibliothek zum Zeichnen mathematischer Funktionen AWT, Swing, JavaFX & SWT 11
M Swing Warum öffnen sich beim Zeichnen mit Swing plötzlich zwei Fenster? AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben