Java 如何从JFrame访问程序?

Java 如何从JFrame访问程序?,java,swing,for-loop,jframe,Java,Swing,For Loop,Jframe,我刚开始学习Java和编程。这是我的第二个程序,我有一个小问题。所以,首先,我写了一个程序,可以把单词翻译成摩尔斯电码。现在我想添加包含3个元素的JFrame。JTextArea将用于英语单词,JButton将用于翻译,JLabel将使用翻译后的摩尔斯电码 问题是我无法访问已经编程的代码。我试图在ActionListener中复制这两个“for”,但程序什么也不做。所以问题是如何让这个翻译器在JFrame中工作 我将非常感谢你的建议。我需要学很多东西。:-) import javax.swing

我刚开始学习Java和编程。这是我的第二个程序,我有一个小问题。所以,首先,我写了一个程序,可以把单词翻译成摩尔斯电码。现在我想添加包含3个元素的JFrame。JTextArea将用于英语单词,JButton将用于翻译,JLabel将使用翻译后的摩尔斯电码

问题是我无法访问已经编程的代码。我试图在ActionListener中复制这两个“for”,但程序什么也不做。所以问题是如何让这个翻译器在JFrame中工作

我将非常感谢你的建议。我需要学很多东西。:-)

import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
公共类主框架{
公用干管(){
初始化组件();
}
公共组件(){
本文件的标题为“翻译”;
此.setLocationRelativeTo(空);
这个.getContentPane();
本条添加(面板);
添加(文本);
面板。添加(go);
面板。添加(见);
go.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
String toTrans=text.getText();
系统输出打印项次(toTrans);
//在那里,我试图复制我的两个“for”
System.out.println(参见.getText());
}
});
这个包();
此.setDefaultCloseOperation(关闭时退出);
}
JPanel面板=新的JPanel();
JTextArea text=新的JTextArea(1,10);
JButton go=新JButton(“翻译”);
JLabel see=新JLabel(“”);
公共静态void main(字符串[]args){
字符串toTranslate=“test”。toLowerCase();
char[]english={'a','b','c','d','e','f','g','h','i','j',
‘k’、‘l’、‘m’、‘n’、‘o’、‘p’、‘q’、‘r’、‘s’、‘t’、‘u’,
‘v’、‘w’、‘x’、‘y’、‘z’};
字符串[]莫尔斯={“•-”、“-•••”、“-•-••”、“-••”、“•”、“•-•”、“-••”、“-••”,
"• •", "• — — —", "— • —", "• — • •","— —", "— •", "— — —", "• — — •",
"— — • —", "• — •", "• • •", "—", "• • —", "• • • —", "• — —", "— • • —",
"— • — —", "— — • •"};
char[]chars=toTranslate.toCharArray();
字符串翻译为“”;
for(int i=0;i
这就是我试图做的,没有错误,但button什么也没做:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Main extends JFrame{

public Main(){
    initComponents();
}

public void initComponents(){
    this.setTitle("Translator");
    this.setLocationRelativeTo(null);
    this.getContentPane();

    this.add(panel);

    panel.add(text);
    panel.add(go);
    panel.add(see);

    go.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String toTrans = text.getText();
            System.out.println(toTrans);
            for(int i = 0; i < chars.length; i++)
            for (int j = 0; j < english.length; j++)
                if (english[j] == chars[i]){
                    see.setText(morse[j] + "");
                    }

            System.out.println(see.getText());
        }
    });

    this.pack();
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

JPanel panel = new JPanel();

JTextArea text = new JTextArea(1, 10);

JButton go = new JButton("Translate");

JLabel see = new JLabel("");


char[] english = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                                 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
                                 'v', 'w', 'x', 'y', 'z'};

    String[] morse = {"• — ", "— • • • ", "— • — •", "— • • ", "•", "• • — •", "— — •", "• • • •",
                                 "• •", "• — — —", "— • —", "• — • •","— —", "— •", "— — —", "• — — •",
                                 "— — • —", "• — •", "• • •", "—", "• • —", "• • • —", "• — —", "— • • —",
                                 "— • — —", "— — • •"};

 char[] chars = text.getText().toCharArray();   

 public static void main(String[] args) {
    new Main().setVisible(true);

}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
公共类主框架{
公用干管(){
初始化组件();
}
公共组件(){
本文件的标题为“翻译”;
此.setLocationRelativeTo(空);
这个.getContentPane();
本条添加(面板);
添加(文本);
面板。添加(go);
面板。添加(见);
go.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
String toTrans=text.getText();
系统输出打印项次(toTrans);
for(int i=0;i
}1)使用unicode“\u2022\u2014”而不是“•-”

2) 添加
chars=text.getText().tocharray()
actionPerformed
中,将给定文本设置为chars变量

3) 创建翻译
translated.append(morse[j])

4) 将翻译设置为标签
see.setText(translated.toString())

5) 刷新frame
frame.pack()

字符数组替换为

String[] morse = {"\u2022 \u2014 ", ... }

你试图在actionperformed方法中输入的代码是什么?当你将其放入actionperformed方法时,错误是什么?我试图向Action listener中添加这样的内容:'for(int i=0;i@Override public void actionPerformed(ActionEvent e) { chars = text.getText().toCharArray(); StringBuilder translated = new StringBuilder(); System.out.println(chars); for (int i = 0; i < chars.length; i++) for (int j = 0; j < english.length; j++) if (english[j] == chars[i]) { translated.append(morse[j]); } see.setText(translated.toString()); System.out.println(see.getText()); frame.pack(); }
public void initComponents() {
   JFrame frame = this;
   this.setTitle("Translator");
String[] morse = {"\u2022 \u2014 ", ... }