2010-11-18 18 views

Respuesta

30

Si está dibujando en un objeto Graphics2D, puede utilizar la setStroke() método:

Graphics2D g2; 
double thickness = 2; 
Stroke oldStroke = g2.getStroke(); 
g2.setStroke(new BasicStroke(thickness)); 
g2.drawRect(x, y, width, height); 
g2.setStroke(oldStroke); 

Si esto se hace en un componente Swing y que se están pasando un objeto Graphics, puede abatido a a Graphics2D.

Graphics2D g2 = (Graphics2D) g; 
+2

¿Tengo que desarmar el accidente cerebrovascular @JPC – JPC

+0

, sí. El trazo se mantendrá más grueso. Agregaré un código que resuelva ese problema. Colocarse. – jjnguy

+0

@JPC, eche un vistazo al código que agregué. – jjnguy

2

Aquí es cómo hacer esto: Frontera con línea de color con un espesor 5.

Border linebor = BorderFactory.createLineBorder(new Color(0xAD85FF), 5); 
0
**Tested code with buffered image with different thickness values**: 

Graphics2D g = bufferedImage.createGraphics(); 

int height = //image height 

int width = //image height 

int borderWidth = //border thickness 

int borderControl = 1; 

//set border color 

g.setColor(Color.BLACK); 

//set border thickness 

g.setStroke(new BasicStroke(borderWidth)); 

//to fix issue for even numbers 

if(borderWidth%2 == 0){ 

borderControl = 0; 

} 

g.drawLine(0, 0, 0, height); 

g.drawLine(0, 0, width, 0); 

g.drawLine(0, height – borderControl, width, height – borderControl); 

g.drawLine(width – borderControl, height – borderControl, width – borderControl, 0); 
Cuestiones relacionadas