java - 按钮逻辑被忽略 - 为什么?

标签 java swing jbutton

我正在编写一个加密程序,它会接收常规单词并将它们转换为特定的“代码”。一切都已完成,但程序忽略了提交按钮代码。我应该怎么做才能解决这个问题?

    import javax.swing.*;
    import java.io.*;
    import java.awt.event.*;
    import java.awt.*;
    public class decode extends JFrame {
    private JTextArea textaci;
    private JTextArea textaclr;
    private JLabel lclear;
    private JLabel lcipher;
    private JButton bsubmit;
    private String cleartext;
    private String ciphertext;
    private boolean clrtoci; 


    public decode(){
        super();
        setTitle("Decoder");
        setSize(300,200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridBagLayout());
        GridBagConstraints c =new GridBagConstraints();
        c.fill=GridBagConstraints.VERTICAL;
        c.weightx=0.5;
        textaci=new JTextArea();
        textaclr=new JTextArea();
        lclear=new JLabel("cleartext:");
        lcipher=new JLabel("ciphertext:");
        bsubmit=new JButton("Submit");
        bsubmit.setActionCommand("enable");
        textaci.setEditable(true);
        textaci.setLineWrap(true);
        textaclr.setEditable(true);
        textaclr.setLineWrap(true);
        textaci.setText(ciphertext);
        c.gridx=0;
        c.gridy=0;
        add(lclear);
        c.gridx=1;
        c.gridy=0;
        add(textaclr);

        c.gridx=0;
        c.gridy=2;
        add(lcipher);
        c.gridx=3;
        c.gridy=4;
        add(textaci);
        add(bsubmit);



    //----------------------------------------------------------------------------\\
        TextFieldHandler hand=new TextFieldHandler();
        bsubmit.addActionListener(hand);
        setVisible(true);
    }
    public class TextFieldHandler implements ActionListener{
        public void actionPerformed(ActionEvent event){
        if(event.getSource()==bsubmit){
            cleartext=textaclr.getText();
            int cleartextl=cleartext.length();
             if(textaci.getText()==null){
            clrtoci=true;
        }
        else{
            clrtoci=false;
        }
             if(clrtoci==true){//if it's cleartext to ciphertext
                 for(int i=0;i>=cleartextl;i++){
                     if(cleartext.contains("a")){
                         ciphertext="3";
                     }
                     if(cleartext.contains("b")){
                         ciphertext="b";
                     }
                     //and so on and on to the rest of the alphabet
                                      }//end of for statement
                 textaci.setText(ciphertext);
                 setVisible(true);
                 System.out.print(ciphertext);
             }//if it's cleartext to ciphertext

        }//bsubmit logic
    }//end of event
        }//end of ActionListener


    public static void main(String[] args){
        new decode();
    }
}

最佳答案

“但是程序忽略了提交按钮代码。”

定义“忽略”。该按钮对我来说效果很好。只需在代码中添加一些 System.out.println(...) 语句即可查看代码的哪些部分正在执行。

代码将始终执行第一个 if 条件,因为源始终是提交按钮。

您需要重新组织逻辑,因为 else 条件永远不会被执行。

关于java - 按钮逻辑被忽略 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288335/

相关文章:

java - 按字段对一组元素进行排序

java - 如何在java中制作旋转面板

java - 自动建议组合框,可从 mysql 数据库检索值

java - 用于输出棋盘格的按钮的 GridLayout

java - java中的POST与android中的POST不同吗?

java - 如何在 Spring Cloud Dataflow "Cloudfoundry"服务器启动上引用本地 Kafka 和 Zookeeper 配置

java - 调整图片大小以适合 JLabel

java - 在 Swing 中使用空布局时,我的组件只有在将鼠标悬停在它们上时才会出现

java - JButton 子类不改变透明度

来自用户输入的 Java 对象名称作为方法调用