Swing es un kit de herramientas GUI diseñado para Java.
Swing es parte de la clase básica Java.
Swing incluye dispositivos gráficos de interfaz de usuario (GUI), como cuadros de texto, botones, paneles de separación y tablas.
Swing proporciona muchos mejores elementos de pantalla de pantalla que AWT. Están escritos en Java puro, por lo que pueden atravesar plataformas como Java, lo cual no es como AWT. Son parte de JFC. Admiten paneles y temas reemplazables (temas específicos para varios valores predeterminados de sistemas operativos), pero en lugar de usar realmente dispositivos proporcionados por plataformas nativas, simplemente los imitan en la superficie. Esto significa que puede usar cualquier panel compatible con Java en cualquier plataforma. La desventaja de los componentes livianos es que son lentos para ejecutar, y la ventaja es que pueden adoptar un comportamiento unificado en todas las plataformas.
Echemos un vistazo a un simple ejemplo de implementación del botón:
import java.awt.*; import java.awt.geom.*; import javax.swing.*; class rbutton extiende jbutton {public rbutton (etiqueta de cadena) {super (etiqueta); // Estas declaraciones extienden el botón a un círculo en lugar de un ellipse. Dimension size = getPreferredSize (); size.width = size.height = math.max (size.width, size.height); setPreferredSize (size); // Esta llamada hace que JButton no dibuje el fondo, pero nos permite dibujar un fondo de círculo. setContenerAfiled (falso); this.setbackground (color.gray);} // dibuje el fondo y la etiqueta del círculo protegido void pintarComonent (gráfico g) {if (getModel (). isarMed ()) {// Puede elegir un color resaltado como propiedad de la clase de botón circular g.setcolor (color.lightgray); {g.setcolor (getbackground (} (} (} (0, (} (0, (0, (} G. (} G. (} G. (} (0, (} G. (} G. (} G. (} G. (} (G. alght (} (} (} G. (} (G. alght (} (G. alght (} (G.Alt (} G. (} G. (} (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0. 0, getSize (). Ancho - 1, getSize (). Altura - 1); // Esta llamada dibujará una etiqueta y un rectángulo de enfoque. super.PaintComponent (g);} // Use un arco simple para dibujar el límite del botón. Proteged Void PaintBorder (Graphics G) {G.SetColor (getForeGround ()); G.Drawoval (0, 0, getSize (). Ancho - 1, getSize (). Altura - 1);} // Detectar la forma de la forma del evento; if (shape == null || JButton Button = new RButton ("Jackpot"); Imageicon ic = new ImageCon ("e: //clientformssql//icons//item_group.gif"); jButton Button2 = new JButton (IC); Button.setBackground (color.gray); // Generar un marco para mostrar este botón. Jframe marco = new jframe (); frame.setDefaultCloseOperation (jframe.exit_on_close); // frame.getContentPane (). Setbackground (color.gray); frame.getContentPane (). ADD (Button); fetContentPane (). ADD (BOTÓN2); Frame.getContentPane (). FlowLayout ()); frame.setsize (200, 200); frame.setVisible (true);}}resultado:
A continuación, compartiré un ejemplo de Java de botones que implementan eventos de clic simples.
Aquí hay un consejo para hacer botones de giro redondo. De hecho, este truco es convenientemente aplicable a los botones de cualquier forma, pero solo hacemos un botón redondo. Cuando haces un botón redondo, debes hacer dos cosas. Lo primero es sobrecargar un método de dibujo apropiado para dibujar un círculo. La segunda cosa es establecer algunos eventos para que el botón responda solo cuando haga clic en el rango del botón circular (no el rango del rectángulo que contiene el botón circular).
import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class RoundButton extiende JButton {public RoundButton (etiqueta de cadena) {super (etiqueta); // Estas declaraciones extienden el botón a un círculo en lugar de un ellipse. Dimension size = getPreferredSize (); size.width = size.height = math.max (size.width, size.height); setPreferredSize (size); // Esta llamada hace que JButton no dibuje el fondo, pero nos permite dibujar un fondo de círculo. setContentAreaFilled(false);}// Draw the background and label of the circle protected void paintComponent(Graphics g) {if (getModel().isArmed()) {// You can select a highlighted color as the property of the circular button class g.setColor(Color.lightGray);} else {g.setColor(getBackground());}g.fillOval(0, 0, getSize (). Ancho - 1, getSize (). Altura - 1); // Esta llamada dibujará una etiqueta y un rectángulo de enfoque. super.PaintComponent (g);} // Use un arco simple para dibujar el límite del botón. Proteged Void PaintBorder (Graphics G) {G.SetColor (getForeGround ()); G.Drawoval (0, 0, getSize (). Ancho - 1, getSize (). Altura - 1);} // Detectar la forma de la forma del evento; if (shape == null || JButton Button = new RoundButton ("Jackpot"); Button.SetBackground (color.green); // Genere un marco para mostrar este botón. Jframe marco = new jframe (); frame.getContentPane (). Setbackground (color.yellow); marr.resultado:
Haga clic en Evento:
Como queremos preservar la mayor parte de la funcionalidad de JButton, dejamos que la clase RoundButton herede la clase JButton. En el constructor de Button Round, se llama el método setContenerAftilled (). Esto hace que el botón dibuje un área de enfoque rectangular, pero no el fondo.
Ahora necesitamos dibujar un fondo de círculo. Esto se logra sobrecargando el método PaintComponent (). Ese método utiliza el método Graphics.FillOval () para dibujar un círculo sólido. Luego, el método PaintComponent () llama a Super.PaintComponent () para dibujar una etiqueta en el círculo sólido.
Este ejemplo también anula el método PaintBorder () para dibujar un borde en el límite del botón circular. Si no desea fronteras, tampoco puede sobrecargar este método. Este método llama al método Graphics.Drawoval () para dibujar un borde delgado en el límite del círculo.
Nota: En JDKTM1.2.2, cuando arrastra el mouse dentro o fuera del rango del botón, el comportamiento de JButton tiene un pequeño error. Teóricamente, cuando hace clic en el mouse en el botón circular y luego arrastra el mouse lejos del límite del botón, el botón debe cambiar su forma. Cuando arrastra el mouse al límite del botón, el botón debe responder a su forma. Desafortunadamente, el código que contiene este comportamiento no puede llamar al método Contiene (). En su lugar, es usar solo el 'rango de límite' del botón (que es el rango rectangular mínimo que contiene el botón). Tenga en cuenta que si arrastra el mouse ligeramente dentro del límite del círculo, es decir, deje el rango del círculo pero no el límite, el botón no cambiará su forma.
Resumir
Lo anterior es todo el contenido de este artículo sobre la programación de Java para implementar el código de instancia de botón redondo Swing, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!