Java - JFrame con bordes redondeados

 
Vista:
Imágen de perfil de Edinson
Val: 52
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

JFrame con bordes redondeados

Publicado por Edinson (22 intervenciones) el 18/06/2017 07:25:42
Hola gente buenas noches , escribia para pedirles ayuda , esque estoy haciendo un JFrame swing, con bordes redondeados pero no me salen los bordes redondeados , pero cuando lo hago directamente con la ayuda desde netbeans y pongo el codigo debajo del initComponents(); si me salen los bordes redondeados. este es mi codigo. no se que estare haciendo mal :(

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class JframeDialogo extends javax.swing.JFrame {
 
 
    public JframeDialogo() {
 
//este es el codigo que me permite redondear los bordes.
       this.setUndecorated(true);
        Shape forma = new RoundRectangle2D.Double(0, 0, this.getBounds().width, this.getBounds().height, 30, 30);
        AWTUtilities.setWindowShape(this, forma);
 
 inicializarComponentes();   // inicializamos los atributos o componentes
 
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

JFrame con bordes redondeados

Publicado por Costero (148 intervenciones) el 19/06/2017 20:51:48
The falto setSize

1
2
3
4
this.setUndecorated(true);
this.setSize(400, 300);
Shape forma = new RoundRectangle2D.Double(0, 0, this.getBounds().width, this.getBounds().height, 30, 30);
AWTUtilities.setWindowShape(this, forma);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JFrame con bordes redondeados

Publicado por Jonathan (5 intervenciones) el 08/11/2022 02:49:21
Al intentar ejecutar el código me sale el siguiente error:

Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet.
at interfaces.SplashScreen$AWTUtilities.setWindowShape(SplashScreen.java:206)
at interfaces.SplashScreen.<init>(SplashScreen.java:20)
at interfaces.SplashScreen.main(SplashScreen.java:156)

Si me pueden ayudar sería genial!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JFrame con bordes redondeados

Publicado por Kabuto (1381 intervenciones) el 08/11/2022 17:57:53
La clase AWTUtilites creo que solo estuvo disponible en la versión Java 6, y la propia Sun ya avisaba que seguramente dejaría estar disponible en posteriores versiones de Java, y así fue.

Puedes intentarlo de esta otra forma:
1
2
3
4
5
JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setSize(400, 300);
Shape forma = new RoundRectangle2D.Double(0, 0, frame.getBounds().width, frame.getBounds().height, 30, 30);
frame.setShape(forma);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JFrame con bordes redondeados

Publicado por Jonathan (5 intervenciones) el 13/11/2022 03:35:37
Amigo, no me sirvió, tampoco muestra error simplemente no hace nada :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JFrame con bordes redondeados

Publicado por Kabuto (1381 intervenciones) el 13/11/2022 09:51:14
Te doy un programa más completo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.awt.FlowLayout;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.RoundRectangle2D;
 
import javax.swing.JButton;
import javax.swing.JFrame;
 
public class MarcoRedondeado{
 
	private JButton btCerrar;
 
	public MarcoRedondeado() {
 
		btCerrar = new JButton("Cerrar");
		btCerrar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
 
		JFrame marco = new JFrame();
		marco.setLayout(new FlowLayout());
		marco.add(btCerrar);
 
		marco.setUndecorated(true);
		marco.setSize(400, 300);
		Shape forma = new RoundRectangle2D.Double(0, 0, marco.getBounds().width, marco.getBounds().height, 30, 30);
		marco.setShape(forma);
		marco.setLocationRelativeTo(null);
		marco.setVisible(true);
 
 
	}
 
	public static void main(String[] args) {
		new MarcoRedondeado();
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JFrame con bordes redondeados

Publicado por Eduardo (1 intervención) el 30/01/2023 20:32:36
Es bastante más fácil de lo que se piensa, yo igual batalle con AWTUtilities pero experimentando encontre que solo hay que ponerlo asi despues del initComponents();

setShape(new RoundRectangle2D.Double(0,0,getWidth(),getHeight,25,25));

el setUndecorated(true); lo puedes poner antes del initComponents(); o con el netbeans desde la vista diseño en propiedades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar