java swing+Java GUI调式窗口动画渲染

文章目录


前言

java swing 界面太过于古老,怎么做出现代化的界面呢?undecorated,BackGround来帮你

提示:以下是本篇文章正文内容,下面案例可供参考

一、使用步骤

1.头文件

代码如下(示例):

import javax.sound.sampled.*;import javax.swing.*;import java.awt.*;import java.lang.*;import java.io.*

2.透明背景,分层添加图像

代码如下(示例):桌面的基本透明窗口背景,只能触碰看的见的图像.

package QQSonClassRemoteClient;
import javax.sound.sampled.*;
import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.io.*;
public class TestsInfo {
    private static Dimension GetScreenOfBoundsSize=Toolkit.getDefaultToolkit().getScreenSize();
    //get Screen size//获取屏幕大小
    public static void main(String[] Ahter){
         int getScreenOfWidth=GetScreenOfBoundsSize.width;;
        int getScreenOfHeight=GetScreenOfBoundsSize.height;;
        //获取宽
        //获取高
        ImageIcon LoadTestsDefaultOfGraphics=new ImageIcon("图像地址");
        //图像地址
        JLabel LoadUserOfGraphicsAppendToWindows=new JLabel();
        //添加标签
        LoadUserOfGraphicsAppendToWindows.setLayout(null);
        //设置布局不遵循常规
        LoadUserOfGraphicsAppendToWindows.setIcon(LoadTestsDefaultOfGraphics);
        //设置标签图像
        LoadUserOfGraphicsAppendToWindows.setBounds(0,0,LoadTestsDefaultOfGraphics.getIconWidth(),LoadTestsDefaultOfGraphics.getIconHeight());
        //设置界限同时获取图像宽高
        JFrame CreateWindowsToDesktop=new JFrame();
        //添加窗口
        CreateWindowsToDesktop.setLayout(null);
        //添加标签
        CreateWindowsToDesktop.setBounds(getScreenOfWidth/2-LoadTestsDefaultOfGraphics.getIconWidth()/2,
                getScreenOfHeight/2-LoadTestsDefaultOfGraphics.getIconHeight()
                ,LoadTestsDefaultOfGraphics.getIconWidth(),LoadTestsDefaultOfGraphics.getIconHeight());
        //设置界限,算法使图像总是出现在中间
        CreateWindowsToDesktop.setUndecorated(true);
        //设置不用默认框
        CreateWindowsToDesktop.setBackground(new Color(0,0,0,0));
        //设置窗口背景为不可触碰
        CreateWindowsToDesktop.setVisible(true);
        //设置窗口显示
        LoadUserOfGraphicsAppendToWindows.setFont(new Font(Font.SERIF,Font.PLAIN,15));
        //设置字体标签
        CreateWindowsToDesktop.getLayeredPane().add(LoadUserOfGraphicsAppendToWindows,new Integer(Integer.MIN_VALUE));
        //添加到窗口分层,注意一定要使Undecorated为错误
    }

}

这个是上述代码的效果.

二,按钮美化

以下我整理了一些关于按钮美化的程序设置

        //设置按钮美化
        // Border TextArea= BorderFactory.createLineBorder(new Color(0,0,0,0));设置文本框不存在线条
        //TextArea.setLineWrap(true);

        // 不能透明不然字体无法及时刷新

        //JButton.setContentAreaFilled//true//false//设置按钮的背景是否为空

        //JButton.setPressedIcon设置按下后的图像

        //JButton.setBackground//设置按钮背景是不可触碰与透明这完全取决于界限

        //JButton.setBorderPainted//设置边框为不存在

        //JButton.setIcon//设置原始默认的图像

以上代码的效果仅供参考


 关于界面的一些有用的程序就到这里了.

以上这些美化微不足道的,你可以自己去制作这些,一个应用程序中不应该大量的使用这些图片,而是自己去手写组件和动画效果。

下面是纯JavaGUI开发的调式窗口,先看效果.(无需任何图片)

开始手写一个小窗口并带上渲染动画-使用colorful1.1做到

colorful的安装教程我推荐这一篇:点我查看

CV-渲染动画-效果

这里我只是简单写一个调式窗口内容面板是不可变的,也不可手动调节。

手写调式窗口

参数->窗口名称,位置大小,窗口图标,是否渲染导航栏

代码:

    public static void main(String[] X) {
        SequenceCachedPool Core=new SequenceCachedPool(2,3,100,TimeUnit.MILLISECONDS,
                new LinkedBlockingDeque<>(10));
        IOS_SHOGUN_Toolkit SHOGUN=new IOS_SHOGUN_Toolkit();
        SHOGUN.Core(Core);
        Java Test=new Java();
        Test.setToolkit(SHOGUN);
        Test.DebugGraphics("调式窗口名称",new Rectangle(400,100,500,500),
                SHOGUN.GraphicsReplace(),true);
    }

cv渲染调式窗口源码

import IOS_SHOGUN_Component.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
//IOS_SHOGUN
public class Java {
    IOS_SHOGUN_Toolkit SHOGUN;

    /**
     *<h1>DebugGraphics(调试窗口)</h1>
     <h4 style="font-family:'微软雅黑 Light';border-color:rgba(115,115,115,0.8);border-style: solid;border-radius:10px;">3
     *接口使用方式 DebugGraphics();</h4>
     * @return JPanel
     */
    @NotNull public <V> Vector_Resource4 DebugGraphics(V FrameName, Rectangle StorageSize, BufferedImage Icon, Boolean Temple) {JFrame HomeOfWindowsJFrameViewVisual = new JFrame();HomeOfWindowsJFrameViewVisual.setLayout(null);
        HomeOfWindowsJFrameViewVisual.setTitle((String) FrameName);HomeOfWindowsJFrameViewVisual.setIconImage(Icon);HomeOfWindowsJFrameViewVisual.getDefaultCloseOperation();
        HomeOfWindowsJFrameViewVisual.setBounds(StorageSize.x,StorageSize.y,StorageSize.width,StorageSize.height+50);HomeOfWindowsJFrameViewVisual.setUndecorated(true);HomeOfWindowsJFrameViewVisual.setBackground(new Color(0, 0, 0, 0));
        HomeOfWindowsJFrameViewVisual.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);Integer[] StorageIOS_SHOGUN_Debug=new Integer[]{StorageSize.width};
        JPanel LoadCaptureDataOfResourceMirrorDisplayed = new JPanel(){@Override public void paint(Graphics OBTAIN_SWING_GUI) {super.paint(OBTAIN_SWING_GUI);Graphics2D TurnLabelComponentTo2DGraphics=(Graphics2D)OBTAIN_SWING_GUI;Color PrintfGraphics= new Color(31, 31, 31);
            TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
            OBTAIN_SWING_GUI.setColor(PrintfGraphics);OBTAIN_SWING_GUI.fillRoundRect(0, 0,StorageSize.width,  StorageSize.height, 20, 20);TurnLabelComponentTo2DGraphics.setColor(new Color(250, 250, 250));
            Paint Storage2DGraphicsPaint=((Graphics2D) OBTAIN_SWING_GUI).getPaint();if (Temple) {
                GradientPaint CREATE_COLOR_GRAPHICS = new GradientPaint(0, 35, new Color(198, 79, 190), StorageSize.width, 0, new Color(232, 164, 75));
                ((Graphics2D) OBTAIN_SWING_GUI).setPaint(CREATE_COLOR_GRAPHICS);}
            TurnLabelComponentTo2DGraphics.fillRoundRect(0,0,StorageIOS_SHOGUN_Debug[0],35,10,10);((Graphics2D) OBTAIN_SWING_GUI).setPaint(Storage2DGraphicsPaint);
            TurnLabelComponentTo2DGraphics.setFont(new Font("雅黑",Font.PLAIN,12));FontMetrics OBTAIN_User_Font = Toolkit.getDefaultToolkit().getFontMetrics(new Font("雅黑",Font.PLAIN,12));
            int Obtain_Toolkit_Class_Width = SwingUtilities.computeStringWidth(OBTAIN_User_Font, (String) FrameName);TurnLabelComponentTo2DGraphics.setColor(new Color(72, 70, 70));
            TurnLabelComponentTo2DGraphics.drawString((String) FrameName, (StorageSize.width)/2-Obtain_Toolkit_Class_Width/2, 38-OBTAIN_User_Font.getHeight());
            TurnLabelComponentTo2DGraphics.drawImage(SHOGUN.CircleImage(SHOGUN.IMAGE_CustomScaledIOS(Icon,25,25),new Point(25,25)),5,35/2-25/2,25,25,null);
            super.paintChildren(OBTAIN_SWING_GUI);}  @Override public void setBounds(int x, int y, int width, int height) {super.setBounds(0, 0, width, height+50);}@Override public void setBounds(Rectangle r) {this.setBounds(0, 0, r.width, r.height+50);}};
        LoadCaptureDataOfResourceMirrorDisplayed.setLayout(null);LoadCaptureDataOfResourceMirrorDisplayed.setBackground(new Color(0,0,0,0));LoadCaptureDataOfResourceMirrorDisplayed.setBounds(StorageSize);
        LoadCaptureDataOfResourceMirrorDisplayed.setVisible(true);HomeOfWindowsJFrameViewVisual.add(LoadCaptureDataOfResourceMirrorDisplayed);
        Integer[] Toolkit_SHOGUN=new Integer[]{50};Integer[] Toolkit_SHOGUN_AGAIN=new Integer[]{0,0,0};JButton StorageLoadDataResource=new JButton(){
            @Override public void paint(Graphics OBTAIN_SWING_GUI) {super.paint(OBTAIN_SWING_GUI);Graphics2D TurnLabelComponentTo2DGraphics = (Graphics2D) OBTAIN_SWING_GUI;TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
                TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
                TurnLabelComponentTo2DGraphics.setColor(new Color(Toolkit_SHOGUN_AGAIN[0],Toolkit_SHOGUN_AGAIN[1],Toolkit_SHOGUN_AGAIN[2]));
                OBTAIN_SWING_GUI.fillOval(0, 0, getSize().width-1, getSize().height-1);TurnLabelComponentTo2DGraphics.setColor( new Color(Toolkit_SHOGUN[0],14,14));
                OBTAIN_SWING_GUI.fillOval(getSize().width/4, getSize().height/4, getSize().width/2, getSize().height/2);super.paintChildren(OBTAIN_SWING_GUI);}
            @Override public void setBounds(int x, int y, int width, int height) {super.setBounds(StorageSize.width-35,35/2-25/2,25,25);}
            @Override public void setOpaque(boolean isOpaque) {super.setOpaque(false);}@Override public void setContentAreaFilled(boolean b) {super.setContentAreaFilled(false);}
            @Override public void setBorderPainted(boolean b) {super.setBorderPainted(false);}};
        IOS_SHOGUN_Toolkit IOS_SHOGUN_GRAPHICS_2D=SHOGUN;
        Boolean[] ControlProgressInfo=new Boolean[]{false,false,false};
        StorageLoadDataResource.setBorderPainted(false);StorageLoadDataResource.setContentAreaFilled(false);
        StorageLoadDataResource.setOpaque(false);StorageLoadDataResource.setBounds(0,0,0,0);
        LoadCaptureDataOfResourceMirrorDisplayed.add(StorageLoadDataResource);
        JPanel LoadCaptureDataOfResourceMirrorDisplayed1 = new JPanel(){@Override public void paint(Graphics OBTAIN_SWING_GUI) {super.paint(OBTAIN_SWING_GUI);
            Graphics2D TurnLabelComponentTo2DGraphics=(Graphics2D)OBTAIN_SWING_GUI;Color PrintfGraphics= new Color(31,31,31);
            TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            TurnLabelComponentTo2DGraphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
            OBTAIN_SWING_GUI.setColor(PrintfGraphics);OBTAIN_SWING_GUI.fillRoundRect(0, 0,  getSize().width,  getSize().height, 20, 20);
            TurnLabelComponentTo2DGraphics.setComposite(AlphaComposite.Src);
            TurnLabelComponentTo2DGraphics.fill(new RoundRectangle2D.Float(0,0,getSize().width,getSize().height,20,20));TurnLabelComponentTo2DGraphics.setComposite(AlphaComposite.SrcAtop);
            TurnLabelComponentTo2DGraphics.setComposite(AlphaComposite.SrcAtop);
            LoadCaptureDataOfResourceMirrorDisplayed.updateUI();
            super.paintChildren(OBTAIN_SWING_GUI);
        }
            @Override public void setBounds(int x, int y, int width, int height) {super.setBounds(3, 36, width, height);}@Override public void setBounds(Rectangle r) {this.setBounds(0, 36, r.width-6, r.height-40);}};
        LoadCaptureDataOfResourceMirrorDisplayed1.setLayout(null);LoadCaptureDataOfResourceMirrorDisplayed1.setBackground(new Color(0,0,0,0));LoadCaptureDataOfResourceMirrorDisplayed1.setBounds(StorageSize);
        LoadCaptureDataOfResourceMirrorDisplayed1.setVisible(true);LoadCaptureDataOfResourceMirrorDisplayed.add(LoadCaptureDataOfResourceMirrorDisplayed1);HomeOfWindowsJFrameViewVisual.setVisible(true);
        StorageLoadDataResource.addActionListener(e -> {
            if (!ControlProgressInfo[1]) {
                ControlProgressInfo[1] = true;
                IOS_SHOGUN_GRAPHICS_2D.Animation_CVShader(255, FPS_DATA->FPS_DATA.CV_SourceAnimation(Toolkit_SHOGUN),
                        AnimationExecutor-> StorageLoadDataResource.updateUI(),
                        new CachedTask<>() {
                            @Override
                            public void run() {
                                IOS_SHOGUN_GRAPHICS_2D.Animation_CVShader(0, FPS_DATA2 -> FPS_DATA2.CV_SourceAnimation(StorageIOS_SHOGUN_Debug),
                                        AnimationExecutor2->LoadCaptureDataOfResourceMirrorDisplayed.updateUI(), new CachedTask<>() {
                                            @Override
                                            public void run() {
                                                System.exit(0);
                                            }
                                        });
                            }
                        });
            }
        });
        StorageLoadDataResource.addMouseListener(new MouseAdapter() {
            public @Override void mouseEntered(MouseEvent EnteredTime) {if (!ControlProgressInfo[0]) {
                ControlProgressInfo[0] = true;
                SHOGUN.Animation_CVShader(255, FPS_3 -> {
                    FPS_3.CV_SourceAnimation(Toolkit_SHOGUN_AGAIN);
                    FPS_3.AnimationLoop(true);
                }, AnimationExecutor3-> StorageLoadDataResource.updateUI(), new CachedTask<>() {
                    @Override
                    public void run() {
                        ControlProgressInfo[0] = false;
                    }
                });
            }}});
        LoadCaptureDataOfResourceMirrorDisplayed.updateUI();LoadCaptureDataOfResourceMirrorDisplayed1.updateUI();
        this.DisplayVector4Graphics(HomeOfWindowsJFrameViewVisual,new Size(StorageSize.width,35));
        return new Vector_Resource4(LoadCaptureDataOfResourceMirrorDisplayed1);
    }
    @NotNull private void DisplayVector4Graphics(JFrame StorageLoadCapture, Size StorageWindowsSize){Point[] StorageUserPressedOfPosition = new Point[]{new Point(0, 0)};Boolean[] JudgeUserPressedWhiteReleased = new Boolean[]{false};
        StorageLoadCapture.addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent StorageUserPressedOfPositionLocation) {
            if ((StorageUserPressedOfPositionLocation.getX() >= 0 && StorageUserPressedOfPositionLocation.getX() <= StorageWindowsSize.width) && (StorageUserPressedOfPositionLocation.getY() >= 0 && StorageUserPressedOfPositionLocation.getY() <= StorageWindowsSize.height)){
                StorageUserPressedOfPosition[0].y = StorageUserPressedOfPositionLocation.getY();StorageUserPressedOfPosition[0].x = StorageUserPressedOfPositionLocation.getX();JudgeUserPressedWhiteReleased[0] = true;}}
            public void mouseReleased(MouseEvent StorageUserPressedOfPositionLocation) {JudgeUserPressedWhiteReleased[0] = false;}
        });StorageLoadCapture.addMouseMotionListener(new MouseAdapter() {public void mouseDragged(MouseEvent MouseDraggedTimeCreateTriggerGoods)
        {if (JudgeUserPressedWhiteReleased[0]) {java.awt.Point WindowsOfPointLocationPositionStorage = StorageLoadCapture.getLocation();
            StorageLoadCapture.setLocation(WindowsOfPointLocationPositionStorage.x + MouseDraggedTimeCreateTriggerGoods.getX() - StorageUserPressedOfPosition[0].x, WindowsOfPointLocationPositionStorage.y + MouseDraggedTimeCreateTriggerGoods.getY() - StorageUserPressedOfPosition[0].y);}}});
    }

    public void setToolkit(IOS_SHOGUN_Toolkit SHOGUN){
        this.SHOGUN=SHOGUN;
    }
    
}

猜你喜欢

转载自blog.csdn.net/m0_61267721/article/details/123224094
今日推荐