我正在編寫一個加密程序,它會將常規字詞轉換爲特定的「代碼」。一切都完成了,但程序忽略了提交按鈕代碼。我應該怎麼做才能解決這個問題?按鈕邏輯被忽略 - 爲什麼?
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