Java proporciona diferentes funciones mediante las cuales podemos controlar la translucidez de la ventana o el marco. Para controlar la opacidad del marco no se debe decorar. La opacidad de un marco es la medida de la translucidez del marco o componente.
En Java, podemos crear ventanas con forma de dos maneras: primero, usando AWTUtilities, que forma parte del paquete com.sum.awt. La clase AWTUtilities tiene una función: setWindowShape(Window w, Shape s), que establece la forma de la ventana y, segundo. usando setShape(Shape s) que establece la forma de la ventana en la forma especificada.
En este artículo discutiremos sobre la translucidez uniforme de la ventana.
Métodos utilizados:
- setWindowShape(Window w, Shape s) : establece la forma de la ventana w a la forma especificada s
- setShape(Shape s) : establece la forma de la ventana a la forma especificada s
- setOpacity(float f) : establece el valor de opacidad del marco
1. Programa para crear un marco translúcido y controlar su translucidez con la ayuda de un JSlider
Java
// Java program to create a // translucent frame and control // its translucency with // the help of a JSlider import javax.swing.event.*; import java.awt.*; import javax.swing.*; class solveit extends JFrame implements ChangeListener { // frame static JFrame f; // slider static JSlider b; // label static JLabel l; // main class public static void main(String[] args) { // create a new frame f = new JFrame("translucent window"); // create a object solveit s = new solveit(); // create label l = new JLabel(); // create a panel JPanel p = new JPanel(); // create a slider b = new JSlider(0, 100, 100); // paint the ticks and tracks b.setPaintTrack(true); b.setPaintTicks(true); b.setPaintLabels(true); // set spacing b.setMajorTickSpacing(20); b.setMinorTickSpacing(5); // setChangeListener b.addChangeListener(s); // add slider to panel p.add(b); p.add(l); f.add(p); // set the text of label l.setText("Opacity value is =" + b.getValue()); // set the size of frame f.setSize(300, 300); // decorated frame's opacity cant be set // so make the frame undecorated f.setUndecorated(true); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); f.setLocation(500, 300); f.show(); } // if opacity value is changed public void stateChanged(ChangeEvent e) { l.setText("opacity value is =" + b.getValue()); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); } }
Producción :
2. Programa para crear una ventana translúcida con forma (usando AWTUtilities) y controlar su translucidez usando un control deslizante
Java
// Java Program to create a shaped translucent // window (using AWTUtilities)and // control its translucency using a slider import javax.swing.event.*; import java.awt.*; import javax.swing.*; import java.awt.geom.*; import com.sun.awt.AWTUtilities; class solveit extends JFrame implements ChangeListener { // frame static JFrame f; // slider static JSlider b; // label static JLabel l; // main class public static void main(String[] args) { // create a new frame f = new JFrame("translucent window"); // create a object solveit s = new solveit(); // create label l = new JLabel(); // create a panel JPanel p = new JPanel(); // create a slider b = new JSlider(0, 100, 100); // paint the ticks and tracks b.setPaintTrack(true); b.setPaintTicks(true); b.setPaintLabels(true); // set spacing b.setMajorTickSpacing(20); b.setMinorTickSpacing(5); // setChangeListener b.addChangeListener(s); // add slider to panel p.add(b); p.add(l); f.add(p); // set the text of label l.setText("Opacity value is =" + b.getValue()); // set the size of frame f.setSize(300, 300); // decorated frame's opacity cant be set so make the frame undecorated f.setUndecorated(true); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); // set window shape using AWTUtilities class AWTUtilities.setWindowShape(f, new Ellipse2D.Float(20f, -30f, 250.0f, 150.0f)); f.setLocation(500, 300); f.show(); } // if opacity value is changed public void stateChanged(ChangeEvent e) { l.setText("opacity value is =" + b.getValue()); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); } }
Producción :
3. Programa para crear una ventana translúcida con forma (usando setShape) y controlar su translucidez usando un control deslizante
Java
// Program to create a shaped translucent // window (using setShape) // and control its translucency using a slider import javax.swing.event.*; import java.awt.*; import javax.swing.*; import java.awt.geom.*; import com.sun.awt.AWTUtilities; class solveit extends JFrame implements ChangeListener { // frame static JFrame f; // slider static JSlider b; // label static JLabel l; // main class public static void main(String[] args) { // create a new frame f = new JFrame("translucent window"); // create a object solveit s = new solveit(); // create label l = new JLabel(); // create a panel JPanel p = new JPanel(); // create a slider b = new JSlider(0, 100, 100); // paint the ticks and tracks b.setPaintTrack(true); b.setPaintTicks(true); b.setPaintLabels(true); // set spacing b.setMajorTickSpacing(20); b.setMinorTickSpacing(5); // setChangeListener b.addChangeListener(s); // add slider to panel p.add(b); p.add(l); f.add(p); // set the text of label l.setText("Opacity value is =" + b.getValue()); // set the size of frame f.setSize(300, 300); // decorated frame's opacity cant be set so make the frame undecorated f.setUndecorated(true); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); // set window shape f.setShape(new Ellipse2D.Float(20f, -30f, 250.0f, 150.0f)); f.setLocation(500, 300); f.show(); } // if opacity value is changed public void stateChanged(ChangeEvent e) { l.setText("opacity value is =" + b.getValue()); // set opacity value for the window f.setOpacity(b.getValue() * 0.01f); } }
Producción :
Nota: es posible que los programas anteriores no se ejecuten en un compilador en línea; utilice un IDE sin conexión. Se recomienda utilizar la última versión de Java para ejecutar los programas anteriores, el usuario puede tener problemas si se utilizan versiones anteriores de Java.
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA