Java Swing | Java中的半透明形状窗口

Java提供了不同的功能,通过这些功能我们可以控制窗口或框架的半透明性。要控制框架的不透明度,不能装饰框架。帧的不透明度是对帧或组件的半透明性的度量。 在Java中,我们可以通过两种方式创建成型窗口,首先是使用组件组件的AWutilities。总和awt package AWTUtilities类有一个函数——设置窗口形状的SetWindowsShape(窗口w,形状s),第二个函数是使用setShape(形状s),将窗口形状设置为指定的形状。 在这篇文章中,我们将讨论窗户的均匀半透明性。 使用的方法:

null
  1. 设置窗口形状(窗口w,形状s): 将窗口w的形状设置为指定的形状s
  2. 设置形状(s形): 将窗口的形状设置为指定的形状
  3. 设置不透明度(浮动f): 设置帧的不透明度值

1.使用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);
}
}


输出:

图片[1]-Java Swing | Java中的半透明形状窗口-yiteyi-C++库

2.编程以创建一个成型的半透明窗口(使用AWTUtilities),并使用滑块控制其半透明性

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);
}
}


输出:

图片[2]-Java Swing | Java中的半透明形状窗口-yiteyi-C++库

3.编程创建一个成型的半透明窗口(使用setShape),并使用滑块控制其半透明性

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);
}
}


输出:

图片[3]-Java Swing | Java中的半透明形状窗口-yiteyi-C++库

注: 以上程序可能无法在联机编译器中运行,请使用脱机IDE。建议使用最新版本的java来运行上述程序,如果使用较旧版本的java,用户可能会遇到问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享