was mache ich falsch?

mariusbopp

Bekanntes Mitglied
ich versuche schon seit ein paar tagen die schnittfläche von 2 rechtecken herrauszubekommen und in einer anderen farbe einzufärben aber irgendwie bekomme ich es nicht hin...;(

vill stell ich mich auch einfach zu doof an keine ahnung hier mal mein code:
also er sagt ich kann es in graphics2d nicht mit intersection vergleichen aber wie löse ich es sonst??
Java:
package grafik;

import java.awt.*; 

import javax.swing.*;

public class Quadrat extends JPanel {	
	
public void paintComponent(Graphics g) {

int x=20;
int y=20;
int width=150;
int hight=150;
	
//rechteck 1
Graphics2D g2 = (Graphics2D) g;
g2.setColor(new Color(20, 0, 200));
g2.fillRect(x, y, width, hight);

//rechteck2
Graphics2D g3 = (Graphics2D) g;
g3.setColor(new Color(255, 0, 136));
g3.fillRect(x+125, y+125, width-75, hight-75);


Rectangle r2 = g2.intersection(g3);
System.out.println(r2);
g.fillRect(r2.x, r2.y, r2.width, r2.height);
}
public static void main(String[] args) {
Quadrat e = new Quadrat ();

JFrame f = new JFrame("Quadrat");
f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
f.setSize(450, 450);
f.add (e);
f.setVisible (true);
}
}

vielen dank schonmal
 
Zuletzt bearbeitet:
G

gman

Gast
Hi,

[JAVA=27]
Rectangle r2 = g2.intersection(g3);
[/code]

g2 und g3 sind vom Typ Graphics2d und die Methode "intersect" ist nur beim Typ Rectangle definiert.
 
B

Beni

Gast
Benutz das "Graphics" Objekt wie du einen Pinsel benutzen würdest. Dann wird sofort klar, dass du kein Rechteck schneiden kannst, indem du zwei "Pinsel" versuchst zusammenzukneten...

Java:
package forum;

import java.awt.*;

import javax.swing.*;

public class Quadrat extends JPanel {

    public void paintComponent( Graphics g ){

        int x = 20;
        int y = 20;
        int width = 150;
        int height = 150;

        Rectangle r1 = new Rectangle(x, y, width, height);
        Rectangle r2 = new Rectangle(x+125, y+125, width-75, height-75);
    
        //rechteck 1
        Graphics2D g2 = (Graphics2D)g;
        
        g2.setColor( new Color( 20, 0, 200 ) );
        g2.fill( r1 );
        
        g2.setColor( new Color( 255, 0, 136 ) );
        g2.fill( r2 );
        
        g.setColor( Color.WHITE );
        Rectangle intersection = r1.intersection( r2 );
        g2.draw( intersection );
    }

    public static void main( String[] args ){
        Quadrat e = new Quadrat();

        JFrame f = new JFrame( "Quadrat" );
        f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        f.setSize( 450, 450 );
        f.add( e );
        f.setVisible( true );
    }
}
 

ARadauer

Top Contributor
hi du verstehst das mit Graphics falsch.

Graphics ist eigentlich die Zeichenfläche wo du drauf zeichnest.
1. Da brauchst du nur eins, also nicht 1,2,3
2. Das hat keine Methode intersection

Also ich würd mir einfach 2 Rechtecke machen, mit intersection noch ein drittes und dann diese einfach auf den Graphics Kontext zeichnen....

zb so

Java:
public void paintComponent(Graphics g) {

		int x = 20;
		int y = 20;
		int width = 150;
		int hight = 150;

		Rectangle r1 = new Rectangle(x, y, width, hight);
		Rectangle r2 = new Rectangle(x + 125, y + 125, width - 75, hight - 75);
		Rectangle r3 = r1.intersection(r2);
		
		// rechteck 1
		Graphics2D g2 = (Graphics2D) g;
		g2.setColor(new Color(20, 0, 200));
		g2.fillRect(r1.x, r1.y, r1.height, r1.width);;

		// rechteck2
		//Graphics2D g3 = (Graphics2D) g; //warum? g ist dein Context auf den zu zeichnest, du braucht nur einen
		g2.setColor(new Color(255, 0, 136));
		g2.fillRect(r2.x, r2.y, r2.height, r2.width);;

		//Rectangle r2 = g2.intersection(g3); //Graphics kann das nicht..
		
		System.out.println(r3);
		g2.setColor(Color.GREEN);
		g.fillRect(r3.x, r3.y, r3.width, r3.height);
	}

Warum macht man das Graphics2D g2 = (Graphics2D) g;?
Ist vielleicht etwas schwer zu verstehen... Im grunde ist g ein Graphics2D Objekt, das mehr Funktionen bietet, um nicht alle alten Schnittstellen anzupassen steht hier noch das "alte" in der Schnittstelle und man kann es einfach casten... keine Ahnung ob das Sinn macht was ich gerade geschrieben habe... mir fallen grade die Augen zu.. ;-)
 

mariusbopp

Bekanntes Mitglied
hey ihr seit echt klasse danke für eure antworten ich werde mich später nochmal drann setzen und es versuchen:):toll:

meld mich dann wenn ichs hab oder noch ne frage hab

lg
 

mariusbopp

Bekanntes Mitglied
okay und schon hab ich die erste frage^^

also klappt alles soweit ganz gut hab das rechteck in der mitte auch farbig gefüllt mir
Java:
g.fillRect(x1.x, x1.y, x1.width, x1.height);

jetzt wollte ich mir noch die kordienaten und größe des rechteckes ausgeben lassen dafür hab ich einfach folgendes geschrieben
Java:
System.out.println(x1)
x1 steht hier für die intersection....

aber er gibt mir jetzt immer 2 mal aus:
java.awt.Rectangle[x=145,y=145,width=25,height=25]java.awt.Rectangle[x=145,y=145,width=25,height=25]


und noch eine sache ist mir eben aufgefallen wenn sich die rechtecke nicht schneiden wird trotzdem ein 3. rechteck erzeugt?! das darf dann doch eig ganicht sein!?
oder mach ich es mit der ausgabe falsch?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Einfache Layout Frage für Applet -> Was mache ich bloss falsch? AWT, Swing, JavaFX & SWT 2
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
ShapeShifter GridBagLayout was mache ich falsch? AWT, Swing, JavaFX & SWT 3
N Wo mache ich den Denkfehler? AWT, Swing, JavaFX & SWT 8
F In Action Listener TextFields einlesen und prüfen. Abbruch bei falschen Eingaben. Wie mache ich das? AWT, Swing, JavaFX & SWT 2
StrikeTom Wie mache ich ein Titelbild(JFrame)? AWT, Swing, JavaFX & SWT 3
I Wie mache ich einen modalen JPanel? AWT, Swing, JavaFX & SWT 2
I Swing + wo mache ich die Fehler AWT, Swing, JavaFX & SWT 4
M Wi mache ich einen refresh AWT, Swing, JavaFX & SWT 4
G Button auswerten und ausgeben ob richtig oder falsch AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
A Eclipse Windowbuilder Frameanzeige falsch AWT, Swing, JavaFX & SWT 3
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
M Swing Inhalt meines JTables wird falsch dargestellt AWT, Swing, JavaFX & SWT 8
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
C JavaFX Application -Icon wird falsch dargestellt AWT, Swing, JavaFX & SWT 7
K Swing Selectedrows falsch nach Sortieren AWT, Swing, JavaFX & SWT 1
B Swing Zähler im Hintergrund falsch berechnet - Warum? AWT, Swing, JavaFX & SWT 3
J JTable wird bei scrollen falsch gezeichnet AWT, Swing, JavaFX & SWT 3
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
F Swing BoxLayout ein JTextfield wird falsch positioniert AWT, Swing, JavaFX & SWT 2
S Swing Spiel Richtig/Falsch implementieren AWT, Swing, JavaFX & SWT 5
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
H Swing ListCellRenderer einer JList zeichnet sporadisch falsch AWT, Swing, JavaFX & SWT 6
H Swing Eigene Komponente reagiert falsch auf mouseClicked() AWT, Swing, JavaFX & SWT 5
T Swing JMenu falsch positioniert AWT, Swing, JavaFX & SWT 2
D Comboboxen werte Falsch. AWT, Swing, JavaFX & SWT 2
S JTable Bug - eingegebene Daten werden falsch geparst :( AWT, Swing, JavaFX & SWT 4
S JComboBox wird nach removeAll falsch dargestellt AWT, Swing, JavaFX & SWT 2
J Scheinbar blockiert Swing bei JTree, was mach ich falsch? AWT, Swing, JavaFX & SWT 7
A jtable + jLabel - was mach ich falsch? AWT, Swing, JavaFX & SWT 2
hdi panel hintergrundbild falsch implementiert ? AWT, Swing, JavaFX & SWT 9
G JTable mit JComboBox als Celleditor, selectedRow falsch! AWT, Swing, JavaFX & SWT 3
Steev Icon wird nicht geladen, was ist falsch? AWT, Swing, JavaFX & SWT 4
V Was mach ich falsch bei TappedPane AWT, Swing, JavaFX & SWT 4
V Was mach ich falsch ? AWT, Swing, JavaFX & SWT 2
N TappedPanel falsch angezeigt AWT, Swing, JavaFX & SWT 6
M pack() awt funktioniert falsch AWT, Swing, JavaFX & SWT 3
N AbstactTabe + JTable --Was ist falsch? AWT, Swing, JavaFX & SWT 4
S SpinnerModel, was mach ich falsch? AWT, Swing, JavaFX & SWT 3
K Linie wird falsch auf Panel gezeichnet AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben