我正在编写一个加密程序,它会将常规字词转换为特定的“代码”。一切都完成了,但程序忽略了提交按钮代码。我应该怎么做才能解决这个问题?按钮逻辑被忽略 - 为什么?
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();
}
}
单击“提交”按钮后,如果您尝试重新调整“JFrame”的大小,您会注意到有一个_major_错误。我唯一的猜测是它可能无限循环,特别是因为'print'从不执行。看到我的答案。 – mre