你需要能够访问那两个文本框,所以一般的做法是在JFrame中或者JPanel中用匿名内部类实现一个ActionListener添加到按钮,这样就有可能访问到其他控件。

解决方案 »

  1.   

    这个是肯定可以的!可能是你其他的代码出错了!比如有 TextField1 和 TextField2你可以先用
    TextField1.getText();
    取得文本框的文本进行转换
    最后用
    TextField2.setText();
    把结果显示出来。
      

  2.   

    把你完整的代码贴出来!我帮你调试!!此外,TextField2.setText(“str”); 显示时,需要 字符串 格式的数据你要把 ascii代码 值转换成 字符串。
      

  3.   

    package des;import java.io.*;
    import java.util.*;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Des extends JFrame {
       JPanel contentPane;
      JPanel jPanel1 = new JPanel();
      BorderLayout borderLayout1 = new BorderLayout();
      JTextArea jTextArea1 = new JTextArea();
      JTextArea jTextArea2 = new JTextArea();
      JTextArea jTextArea3 = new JTextArea();
      JToggleButton jToggleButton1 = new JToggleButton();
      JToggleButton jToggleButton2 = new JToggleButton();
      JLabel jLabel1 = new JLabel();
      JLabel jLabel2 = new JLabel();
      JLabel jLabel3 = new JLabel();
      JLabel jLabel4 = new JLabel();   //Construct the frame
       public Des() {
         enableEvents(AWTEvent.WINDOW_EVENT_MASK);
         try {
           jbInit();
         }
         catch(Exception e) {
           e.printStackTrace();
         }
       }
       //Component initialization
       private void jbInit() throws Exception  {
         contentPane = (JPanel) this.getContentPane();
        contentPane.setBackground(SystemColor.control);
        contentPane.setEnabled(false);
        contentPane.setDebugGraphicsOptions(0);
         contentPane.setLayout(borderLayout1);
         this.setSize(new Dimension(586, 345));
         this.setTitle("Frame Title");
        jTextArea1.setText("");
        jTextArea1.setBounds(new Rectangle(22, 125, 99, 105));
        jPanel1.setLayout(null);
        jTextArea2.setText("");
        jTextArea2.setBounds(new Rectangle(211, 128, 99, 103));
        jTextArea3.setText("");
        jTextArea3.setBounds(new Rectangle(410, 127, 99, 103));
        jToggleButton1.setText("加密");
        jToggleButton1.setBounds(new Rectangle(127, 160, 71, 25));
        jToggleButton1.addActionListener(new Des_jToggleButton1_actionAdapter(this));
        jToggleButton2.setText("解密");
        jToggleButton2.setBounds(new Rectangle(327, 164, 66, 25));
        jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));
        jLabel1.setText("DES加密解密");
        jLabel1.setBounds(new Rectangle(204, 15, 111, 25));
        jLabel2.setText("明文");
        jLabel2.setBounds(new Rectangle(19, 96, 34, 16));
        jLabel3.setRequestFocusEnabled(true);
        jLabel3.setText("密文");
        jLabel3.setBounds(new Rectangle(216, 91, 34, 16));
        jLabel4.setToolTipText("");
        jLabel4.setText("明文");
        jLabel4.setBounds(new Rectangle(377, 87, 34, 16));
        jPanel1.setFont(new java.awt.Font("Dialog", 1, 11));
        contentPane.add(jPanel1, BorderLayout.CENTER);
        jPanel1.add(jTextArea1, null);
        jPanel1.add(jLabel1, null);
        jPanel1.add(jLabel3, null);
        jPanel1.add(jLabel2, null);
        jPanel1.add(jLabel4, null);
        jPanel1.add(jTextArea3, null);
        jPanel1.add(jTextArea2, null);
        jPanel1.add(jToggleButton2, null);
        jPanel1.add(jToggleButton1, null);
       }
       //Overridden so we can exit when window is closed
       protected void processWindowEvent(WindowEvent e) {
         super.processWindowEvent(e);
         if (e.getID() == WindowEvent.WINDOW_CLOSING) {
           System.exit(0);
         }
       }
       public String[] convert(byte bye){
         String [] c  = new String[8];
         int[] ss=new int [8];
         int by=bye;
        // char s='w';
        //  byte b=(byte)s;
          //System.out.println(b);
          for(int i=7;i>=0;i--)
         {
           int ssv=by%2;
           ss[i]=ssv;
           c[i] = (ss[i] == 1)? "1":"0";
           by=by/2;
         }     return c;
       }  public static void main(String[] args) {
        Des frame2 = new Des();
        boolean packFrame = false;
        //Validate frames that have preset sizes
        //Pack frames that have useful preferred size info, e.g. from their layout
        if (packFrame) {
          frame2.pack();
        }
        else {
          frame2.validate();
        }
        //Center the window
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame2.getSize();
        if (frameSize.height > screenSize.height) {
          frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
          frameSize.width = screenSize.width;
        }
        frame2.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
        frame2.setVisible(true);
        try {
             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
           }
           catch(Exception e) {
             e.printStackTrace();
           }  }  void jToggleButton1_actionPerformed(ActionEvent e) {
         Des de = new Des();
       String str=jTextArea1.getText();
       int coun=0;
       byte str1;
       String[] str2=new String[40];
        String[] s=null;
         for(int i=0;i<str.length();i++){
          str1=(byte)str.charAt(i);
          String[] bb=de.convert(str1);
          coun++;
          for(int m=0+coun*8;m<8+coun*8;m++){
            int tt=m-coun*8;
             str2[m]=bb[tt];
          }
          for(int j=0;j<8;j++){
            System.out.print(bb[j]);
          }
         }
         System.out.print(str2);
      }
    }class Des_jToggleButton1_actionAdapter implements java.awt.event.ActionListener {
      Des adaptee;  Des_jToggleButton1_actionAdapter(Des adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jToggleButton1_actionPerformed(e);
      }
    }
      

  4.   


    你的代码问题太多了!
    可能你是初学 Java 吧,你写的 
    void jToggleButton1_actionPerformed(ActionEvent e) 函数问题太多!
    我写了一个简单的(不执行任何的转换),你看看吧!
    你要执行转换,只要转换后还是一个字符串,就可以输出!初学 Java 我建议还是不要使用 IDE 的好!
    要不你很难入门的,JB 屏蔽了太多的东西,也生成了很多的垃圾东西!下面是改写后的代码:import java.io.*;
    import java.util.*;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Des extends JFrame {
       JPanel contentPane;
      JPanel jPanel1 = new JPanel();
      BorderLayout borderLayout1 = new BorderLayout();
      JTextArea jTextArea1 = new JTextArea();
      JTextArea jTextArea2 = new JTextArea();
      JTextArea jTextArea3 = new JTextArea();
      JToggleButton jToggleButton1 = new JToggleButton();
      JToggleButton jToggleButton2 = new JToggleButton();
      JLabel jLabel1 = new JLabel();
      JLabel jLabel2 = new JLabel();
      JLabel jLabel3 = new JLabel();
      JLabel jLabel4 = new JLabel();   //Construct the frame
       public Des() {
         enableEvents(AWTEvent.WINDOW_EVENT_MASK);
         try {
           jbInit();
         }
         catch(Exception e) {
           e.printStackTrace();
         }
       }
       //Component initialization
       private void jbInit() throws Exception  {
         contentPane = (JPanel) this.getContentPane();
        contentPane.setBackground(SystemColor.control);
        contentPane.setEnabled(false);
        contentPane.setDebugGraphicsOptions(0);
         contentPane.setLayout(borderLayout1);
         this.setSize(new Dimension(586, 345));
         this.setTitle("Frame Title");
        jTextArea1.setText("");
        jTextArea1.setBounds(new Rectangle(22, 125, 99, 105));
        jPanel1.setLayout(null);
        jTextArea2.setText("");
        jTextArea2.setBounds(new Rectangle(211, 128, 99, 103));
        jTextArea3.setText("");
        jTextArea3.setBounds(new Rectangle(410, 127, 99, 103));
        jToggleButton1.setText("加密");
        jToggleButton1.setBounds(new Rectangle(127, 160, 71, 25));
        jToggleButton1.addActionListener(new Des_jToggleButton1_actionAdapter(this));
        jToggleButton2.setText("解密");
        jToggleButton2.setBounds(new Rectangle(327, 164, 66, 25));
        jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));
        jLabel1.setText("DES加密解密");
        jLabel1.setBounds(new Rectangle(204, 15, 111, 25));
        jLabel2.setText("明文");
        jLabel2.setBounds(new Rectangle(19, 96, 34, 16));
        jLabel3.setRequestFocusEnabled(true);
        jLabel3.setText("密文");
        jLabel3.setBounds(new Rectangle(216, 91, 34, 16));
        jLabel4.setToolTipText("");
        jLabel4.setText("明文");
        jLabel4.setBounds(new Rectangle(377, 87, 34, 16));
        jPanel1.setFont(new java.awt.Font("Dialog", 1, 11));
        contentPane.add(jPanel1, BorderLayout.CENTER);
        jPanel1.add(jTextArea1, null);
        jPanel1.add(jLabel1, null);
        jPanel1.add(jLabel3, null);
        jPanel1.add(jLabel2, null);
        jPanel1.add(jLabel4, null);
        jPanel1.add(jTextArea3, null);
        jPanel1.add(jTextArea2, null);
        jPanel1.add(jToggleButton2, null);
        jPanel1.add(jToggleButton1, null);
       }
       //Overridden so we can exit when window is closed
       protected void processWindowEvent(WindowEvent e) {
         super.processWindowEvent(e);
         if (e.getID() == WindowEvent.WINDOW_CLOSING) {
           System.exit(0);
         }
       }
       public String[] convert(byte bye){
         String [] c  = new String[8];
         int[] ss=new int [8];
         int by=bye;
        // char s='w';
        //  byte b=(byte)s;
          //System.out.println(b);
          for(int i=7;i>=0;i--)
         {
           int ssv=by%2;
           ss[i]=ssv;
           c[i] = (ss[i] == 1)? "1":"0";
           by=by/2;
         }     return c;
       }  public static void main(String[] args) {
        Des frame2 = new Des();
        boolean packFrame = false;
        //Validate frames that have preset sizes
        //Pack frames that have useful preferred size info, e.g. from their layout
        if (packFrame) {
          frame2.pack();
        }
        else {
          frame2.validate();
        }
        //Center the window
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame2.getSize();
        if (frameSize.height > screenSize.height) {
          frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
          frameSize.width = screenSize.width;
        }
        frame2.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
        frame2.setVisible(true);
        try {
             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
           }
           catch(Exception e) {
             e.printStackTrace();
           }  }  void jToggleButton1_actionPerformed(ActionEvent e) {
       String str=jTextArea1.getText();
       //你具体的转换我看不懂
       //这里只是简单的把 jTextArea1 的输入写到 jTextArea2 中
       //你自己去改写你的转换函数吧
       jTextArea2.setText(str);
       
       /*
       int coun=0;
       byte str1;
       String[] str2=new String[40];
        String[] s=null;
         for(int i=0;i<str.length();i++){
          str1=(byte)str.charAt(i);
          String[] bb=convert(str1);
          coun++;
          for(int m=0+coun*8;m<8+coun*8;m++){
            int tt=m-coun*8;
             str2[m]=bb[tt];
          }
          for(int j=0;j<8;j++){
            System.out.print(bb[j]);
          }
         }
         System.out.print(str2);
         */
       }
       
    }class Des_jToggleButton1_actionAdapter implements java.awt.event.ActionListener {
      Des adaptee;  Des_jToggleButton1_actionAdapter(Des adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jToggleButton1_actionPerformed(e);
      }
    }