Wie zeichnet ein abgerundetes Rechteck in java mit normalen Rechteck Umriss
Für meine java-Anwendung brauche ich ein abgerundetes Rechteck mit einer Kontur, die sieht aus wie ein normales Rechteck, wie diese
Ich weiß, Sie können tun, dass durch die Zeichnung ein normales Rechteck und ein RoundRect drin, aber ich will nicht zu ziehen RoundRect drin, weil ich will, zu zeichnen, etwas anderes in ihm.
So eine rechteckige, mit normalen Ecken. Wie ziehe ich das in Java?
Das problem ist, dass das Rechteck so Aussehen, wenn ich mit den Ebenen:
Die Ecken sind gefüllt mit der falschen Farbe. Wie kann ich das verhindern?
Kannst du nicht stack-Schichten und zeichnen Sie ein Rechteck, fügen Sie ein RoundRect Schicht und dann eine weitere Schicht hinzufügen, mit was auch immer Sie brauchen, in den weißen Bereich?
Auch sollten Sie einen tag-entsprechend dem Grafik-Bibliothek, die Sie verwenden (swing?).
"ich weiß, Sie können tun, dass durch die Zeichnung ein normales Rechteck und ein RoundRect drin, aber ich will nicht zu ziehen RoundRect drin, weil ich zeichnen will etwas anderes." So ziehen, dass "etwas" dauern. Ich sehe wirklich nicht das problem hier.
Vielleicht eine zusätzliche
Auch sollten Sie einen tag-entsprechend dem Grafik-Bibliothek, die Sie verwenden (swing?).
"ich weiß, Sie können tun, dass durch die Zeichnung ein normales Rechteck und ein RoundRect drin, aber ich will nicht zu ziehen RoundRect drin, weil ich zeichnen will etwas anderes." So ziehen, dass "etwas" dauern. Ich sehe wirklich nicht das problem hier.
Vielleicht eine zusätzliche
drawRoundRect(x, y, w, h, 1, 1)
mit einer bestimmten Strichstärke füllen würde die Dreiecke?
InformationsquelleAutor user2016175 | 2013-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denken kann zwei Ansätze. Die erste ist die Erwirtschaftung eines
Shape
repräsentiert das Quadrat outter Rand und die abgerundete innere Kante.Die zweite wäre die Verwendung einer
AlphaComposite
erzeugen einen maskierten Ergebnis.Aktualisiert Shape mit Beispiel
Endlich Zeit gehabt, bang one out...
Aktualisiert
Aus einem Kommentar von Andrew, könnten Sie vereinfachen die Nutzung des shape-Beispiels mit Hilfe von
Area
Könnten Sie ersetzen die
paintComponent
aus dem obigen Beispiel mit diesem...Die viel einfacher ist 😀
+1 sehr schön....
InformationsquelleAutor MadProgrammer
Etwas wie:
E. G.
Ich hoffe, Sie haben nichts dagegen, mich mit der Bearbeitung Ihrer Antwort hinzufügen eines SSCCE. Ich würde Hinzugefügt haben, meine Antwort, wenn Sie hatte es nicht gesagt, ersten.
vielen Dank für die Verzierungen. Ich werde versuchen, diesem Beispiel zu Folgen. Sorry für das posting, deine Antwort obwohl.
Ich mochte Ihre beiden Ansätze (und würde wahrscheinlich ein
Area
zu definieren, die kombiniertShape
) aber gefühlt war es wichtig, die richtige OPs Annahme, dass diese nicht erreicht werden könnten mit der Technik umrissen von Joop.LOL. Ich nur Magermilch deinen post sah 'Form' und vermutete, das war, wie du es getan hast! Vielleicht sollte ich hinzufügen '4. Beispiel" der Weg, den ich meinte. Aber wow.. das eigentliche problem hier ist nicht 'wie dies?', aber 'wie wählt man aus der Vielzahl der Möglichkeiten, dies zu tun?'. 🙂
InformationsquelleAutor Joop Eggen