首页 > 其他分享 >每日总结-23.12.6

每日总结-23.12.6

时间:2023-12-07 19:00:26浏览次数:34  
标签:总结 23.12 java 每日 add selectedImagePath new import frame

package tupian;

/*
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;

public class ToAnime {
    private JFrame frame;

    private JLabel selectImageLabel;
    private String selectedImagePath = "路径1";

    private JLabel resultImageLabel;

    public ToAnime() {
        frame = new JFrame("人物动漫化");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());

        JPanel selectImagePanel = new JPanel();
        selectImagePanel.setLayout(new BorderLayout());
        selectImageLabel = new JLabel();
        selectImageLabel.setIcon(new ImageIcon(selectedImagePath));
        selectImagePanel.add(selectImageLabel, BorderLayout.CENTER);

        JButton selectImageButton = new JButton("选择图片");
        selectImageButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser fileChooser = new JFileChooser();
                int result = fileChooser.showOpenDialog(frame);
                if (result == JFileChooser.APPROVE_OPTION) {
                    File selectedFile = fileChooser.getSelectedFile();
                    selectedImagePath = selectedFile.getAbsolutePath();
                    selectImageLabel.setIcon(new ImageIcon(selectedImagePath));
                }
            }
        });
        selectImagePanel.add(selectImageButton, BorderLayout.SOUTH);

        JPanel resultImagePanel = new JPanel();
        resultImagePanel.setLayout(new BorderLayout());
        resultImageLabel = new JLabel();
        resultImageLabel.setIcon(new ImageIcon(selectedImagePath));
        resultImagePanel.add(resultImageLabel, BorderLayout.CENTER);

        JButton convertButton = new JButton("开始转化");
        convertButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (selectedImagePath.equals("路径1")) {
                    JOptionPane.showMessageDialog(frame, "未选择图片");
                } else {
                    // 调用图片处理方法,返回处理后的Base64编码
                    String processedImage = processImage(selectedImagePath);
                    resultImageLabel.setIcon(new ImageIcon(processedImage));
                }
            }
        });
        resultImagePanel.add(convertButton, BorderLayout.SOUTH);

        frame.add(selectImagePanel, BorderLayout.WEST);
        frame.add(resultImagePanel, BorderLayout.CENTER);

        frame.setSize(800, 600);
        frame.setVisible(true);
    }

    private String processImage(String imagePath) {
        // 处理图片的逻辑,这里只是示例,你可以根据具体需求进行实现
        try {
            File file = new File(imagePath);
            FileInputStream fileInputStream = new FileInputStream(file);

            byte[] buffer = new byte[(int) file.length()];
            fileInputStream.read(buffer);
            String base64Image = Base64.getEncoder().encodeToString(buffer);

            fileInputStream.close();

            return base64Image;
        } catch (IOException exception) {
            exception.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ToAnime();
            }
        });
    }
}

*/







import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;

import javax.swing.*;

public class ToAnime {
    private JFrame frame;
    private JDialog helpDialog;
    private String selectedImagePath = "images/pic.jpg";

    public ToAnime() {
        frame = new JFrame();

        GUI gui = new GUI(frame);

        JPanel panel = new JPanel();
        panel.setLayout(null);

        JLabel titleLabel = new JLabel("人物动漫化");
        titleLabel.setBounds(0, 10, 800, 30);
        titleLabel.setFont(new Font("宋体",Font.BOLD,30));
        titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
        panel.add(titleLabel);

        // 左边选择图片区域
        ImageIcon imageIcon = new ImageIcon(selectedImagePath);
        Image image1 = imageIcon.getImage();
        Image image2 = image1.getScaledInstance(200,200,Image.SCALE_FAST);
        JLabel imageSelectionLabel = new JLabel(new ImageIcon(image2));
        imageSelectionLabel.setBounds(100, 50, 200, 200);
        imageSelectionLabel.setHorizontalAlignment(SwingConstants.CENTER);
        panel.add(imageSelectionLabel);

        JButton chooseImageButton = new JButton("选择图片");
        chooseImageButton.setBounds(150, 280, 100, 30);
        panel.add(chooseImageButton);

        chooseImageButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser fileChooser = new JFileChooser();
                int result = fileChooser.showOpenDialog(frame);
                if (result == JFileChooser.APPROVE_OPTION) {
                    File selectedFile = fileChooser.getSelectedFile();
                    selectedImagePath = selectedFile.getAbsolutePath();
                    imageSelectionLabel.setIcon(new ImageIcon(selectedImagePath));
                }
            }
        });

        // 右边展示图片区域
        JLabel imageDisplayLabel = new JLabel();
        imageDisplayLabel.setBounds(400, 50, 200, 200);
        imageDisplayLabel.setHorizontalAlignment(SwingConstants.CENTER);
        panel.add(imageDisplayLabel);

        JButton startConversionButton = new JButton("开始转化");
        startConversionButton.setBounds(450, 280, 100, 30);
        panel.add(startConversionButton);

        startConversionButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (selectedImagePath.equals("images/pic.jpg")) {
                    JOptionPane.showMessageDialog(frame, "未选择图片");
                } else {
                    // 调用图片处理方法,返回处理后的Base64编码
                    Baidu baidu = new Baidu();
//                    String processedImage = processImage(selectedImagePath);
                    String result = baidu.selfie_anime(selectedImagePath);
                    imageDisplayLabel.setIcon(new ImageIcon(result));
                }
            }
        });



        frame.getContentPane().add(panel);

        // “帮助” - “如何使用” 弹出提示框
        helpDialog = new JDialog(frame, "帮助", true);
        helpDialog.setSize(300, 200);
        helpDialog.setLayout(null);
        JLabel helpTextLabel = new JLabel("帮助");
        helpTextLabel.setBounds(0, 0, 300, 30);
        helpTextLabel.setHorizontalAlignment(SwingConstants.CENTER);
        helpDialog.add(helpTextLabel);

        helpDialog.setLocationRelativeTo(null);

        JButton okButton = new JButton("确定");
        okButton.setBounds(100, 100, 100, 30);
        helpDialog.add(okButton);

        ActionListener helpActionListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                helpDialog.setVisible(true);
            }
        };
        okButton.addActionListener(helpActionListener);

        frame.setVisible(true);
    }
    private String processImage(String imagePath) {
        // 处理图片的逻辑,这里只是示例,你可以根据具体需求进行实现
        try {
            File file = new File(imagePath);
            FileInputStream fileInputStream = new FileInputStream(file);

            byte[] buffer = new byte[(int) file.length()];
            fileInputStream.read(buffer);
            String base64Image = Base64.getEncoder().encodeToString(buffer);

            fileInputStream.close();

            return base64Image;
        } catch (IOException exception) {
            exception.printStackTrace();
        }

        return null;
    }
    private ImageIcon To200 (ImageIcon a){

        Image image1 = a.getImage();
        Image image2 = image1.getScaledInstance(200,200,Image.SCALE_FAST);
        ImageIcon rs = new ImageIcon(image2);

        return rs;
    }

    public static void main(String[] args) {
        ToAnime app = new ToAnime();
    }
}

 

标签:总结,23.12,java,每日,add,selectedImagePath,new,import,frame
From: https://www.cnblogs.com/laobing6214/p/17883722.html

相关文章

  • BLOG-3 PTA总结
    此次博客主要是针对课程成绩统计程序类题目和期末题目的总结前言:随着对Java学习的深入,我接触到了Java中更深层的知识:扩展、多态和接口。这些内容的学习更加困难,但其主要目的也是利于代码的维护和修改,学会了这些将会使我们更加靠近现实的编写环境。课程成绩统计程序-2课程成绩统......
  • UML总结博客
    1.用例图用例图是UML中最常见的图之一,它主要用于描述系统的功能需求。用例图中包含了参与者(Actor)和用例(UseCase)两个主要元素。参与者是与系统交互的外部实体,而用例则表示系统的功能。画法: 用例图的画法相对简单,通过椭圆形表示用例,人形图标表示参与者。通过实线箭头表示参与者......
  • UML各类基础知识总结
    1、UML关系泛化(也就是我们传统意义上的继承关系)子类继承父类,关系用extend关键字标识;关联可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对一的关系之外,还可以用一对多、多对一、多对多的关联关系,除了单向关联之外,双向关联也是存在的;需要注意的是,在......
  • 12月7每日打卡
    UML9种模式图:用例图(UseCaseDagram):用例图是一种展示系统功能需求的工具,它描述了系统如何与外界交互以实现特定目标。用例图主要由用例和参与者组成,用例是系统的某一项功能或者业务流程,而参与者则是与电脑程序进行交互的角色。用例图能够帮助系统开发人员更好地理解客户需求,快速......
  • uml知识总结
    UML图的作用:UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通......
  • 12.7UML图总结
    今天老师布置了UML的类图,用例图,活动图,时序图等,总结了以下内容。类图(ClassDiagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型,是唯一的可以直接映射到面向对象语言的图。类图的绘制......
  • PTA题目集7~8+期末总结
    目录:1.前言2.设计与分析3.BUG与修正4.缺陷与改进5.总结一、前言题目集7的成绩统计2有57个人获得了满分,相较于成绩统计1的31人满分有很大的进步。我认为主要的原因是在成绩统计1发布时间较早,很多同学都是在最后才来写PTA的作业......
  • 常见UML图总结
    写这篇博客的原因呢,是因为上课并未完成老师关于UML类图的解释。所以写下这篇博客加强理解。其中用到最多的就是时序图和活动图。常见的UML图一共有九种,分别是用例图、类图、对象图、序列图(时序图)、协作图、状态图、活动图、构件图和部署图。1.用例图:用于描述系统与其外部环境之......
  • 2023.12.7——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.jfinal明日计划:学习......
  • UML图总结
    UML(UnifiedModelingLanguage,统一建模语言)是一种用于软件系统分析和设计的图形化建模语言。它提供了一套丰富的图形符号和规则,帮助开发人员更好地理解和沟通软件系统的结构和行为。UML图是UML中用于表示系统结构和行为的图形元素,包括类图、对象图、用例图、活动图、序列图、状态......