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