Archief - [PROG][JAVA] De paint hel

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

jodeman

Legacy Member
Misschien ligt het aan mij maar ik heb geen aangename ontmoeting gehad met paint. Het is moeilijk voor men probleem uit te leggen maar ik zal men best doen.

ik maak eigen JComponent - vb disc (instantie)
Code:
public void paint(Graphics g) {
     g.setColor(Color.RED);
     g.fillOval(10,10,10,10);
}

ik probeer dit eenvoudig toe te voegen aan men JPanel
Code:
JPanel panel = new JPanel();
panel.add(disc);

Normaal gezien, moet hij die dan toch gewoon toevoegen want JButton erven ook over van JComponent en daar is niet meer code voor nodig. Welke functies moet ik nog overschrijven of wat moet ik nog doen zodat dit goed werkt?
In een vorig programma dat ik maakte had ik een overvloed aan spaghetticode die langs alle kanten het hoofdgraphics object doorgaf en dat is niet de bedoeling (hoop ik).
Ah ja, paintComponent overschrijven lukte al evenmin.

Kn0t

Legacy Member
Probeer eens setPreferredSize(new Dimension(30,30)); in de constructor van je Disc te plaatsen.
+ het is inderdaad beter om de paintComponent() te overriden ipv getPaint()
+ je zet ook best een call naar super.paintComponent(g); als eerste regel

jodeman

Legacy Member
lukt nog steeds niet spijtig genoeg. Toch bedankt voor de hulp.

.Acku.

Legacy Member
Uw component is waarschijnlijk gewoon 1 op 1 pixel aangezien je de size niet gezet hebt

je moet ee aantal lepe truken met preferredSize, minimimSize en maximumSize toepassen (niet zetten maar overriden)

jodeman

Legacy Member
lol da werkt :-). Gewoon preferredSize overschreven. Thx Acku & kn0t

Voor diegene dat er ook ooit is last van gaan hebben, hier de code.

Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JComponent;

public class Test extends JComponent {
	public Test() {}
	
	public void paint(Graphics g) {
		g.setColor(Color.RED);
	    g.fillOval(100,100,50,50);
	}
	
	public void setPrefferedSize(Dimension preferredSize) {
		this.setSize(preferredSize);
	}
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan