关于反编译出注释的问题

为什么用gui反编译出来的有一部分代码是注释形式的,是出错了么?

img

反编译是将编译后的代码转换回源代码的过程。由于编译过程是将源代码转换为机器语言的过程,因此在反编译时,无法完全还原源代码的结构和格式。

注释是在源代码中添加的说明性文本,通常用于解释代码的功能或目的。在反编译时,注释通常会被保留,因为它们对于理解代码的功能和结构非常有用。

因此,当您使用 GUI 反编译时,看到的一部分代码是注释形式,这并不是出错了。相反,这是正常的情况。注释可以帮助您更好地理解反编译后的代码,并帮助您更好地理解原始代码的结构和功能。

【相关推荐】



  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7734745
  • 这篇博客也不错, 你可以看下创建一个GUI应用程序,用于转换若干种货币。(界面转换)
  • 您还可以看一下 张立铜老师的三维游戏引擎设计与实现-GUI设计与实现课程中的 控件管理设计与实现,消息的分发处理小节, 巩固相关知识点
  • 除此之外, 这篇博客: 编写GUI程序,完成登录界面的设计(使用绝对布局,图片自选)。中的 代码如下 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    package L;
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class LaoFuLiaoFa1 extends JFrame{
            private JPanel jpanel1,jpanel2,jpanel3;
            private JTextField name;
            private JPasswordField password;
            private JLabel label1,label2,jLabel;
            private JButton button1,button2;
            private String welcom="                                    用户登录";
            private JLabel Welcome=new JLabel(welcom);
            public LaoFuLiaoFa1(){
                this.setTitle("登录界面");
                Container picture=this.getContentPane();
                picture.setLayout(new BorderLayout());
                jLabel=new JLabel(new ImageIcon("C:\\Users\\Admin.DESKTOP-OSCOCKM\\lsj\\奥特曼.jpg"));//这里的路径为绝对路径
                jpanel1 = new JPanel();
                jpanel2 = new JPanel();
                jpanel3 = new JPanel();
                label1 = new JLabel("用户名:");
                label2 = new JLabel("密    码:");
                button1= new JButton(" 登 录 ");
                button2 = new JButton(" 取  消 ");
                //设置监听和登录框
                button1.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        if(name.getText().length()==0||new String(password.getPassword()).length()==0)
                            JOptionPane.showMessageDialog(null, "不能为空!");
                        else if(name.getText().equals("老夫撩发")&&new String(password.getPassword()).equals("777"))
                            JOptionPane.showMessageDialog(null, "登录成功!");
                        else
                            JOptionPane.showMessageDialog(null, "登陆失败,请重新登录!");
                    }
                });
                //设置监听和取消框
                button2.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        dispose();
                    }
                });
                picture.add(jLabel,BorderLayout.NORTH);
                this.add(Welcome);
                name = new JTextField(20);//设置用户名框长度
                password = new JPasswordField(20);//设置密码框长度
                this.setLayout(new GridLayout(5,1));//设置布局
                this.add(jpanel1);
                this.add(jpanel2);
                this.add(jpanel3);
                jpanel1.add(label1);
                jpanel1.add(name);
                jpanel2.add(label2);
                jpanel2.add(password);
                jpanel3.add(button1);
                jpanel3.add(button2);
                this.setSize(300,400);
                this.setResizable(false);
                this.setLocation(300, 300);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setVisible(true);
            }
            public static void main(String[] args) {
                LaoFuLiaoFa1 lsj= new LaoFuLiaoFa1();
            }
        }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^