Java 从JTextArea获取文本,并将其调用到ActionPerformed方法

Java 从JTextArea获取文本,并将其调用到ActionPerformed方法,java,swing,jtextarea,Java,Swing,Jtextarea,好的。因此,我将开始说,这是所有在一个类 现在,我在游戏页面上显示了一系列按钮,当按下这些按钮时,我可以打开多个不同的画面。所以我所有的按钮都在工作,所有的框架都开得很好。现在,在那些可以打开的框架内,我有一个JTextArea。在JTextArea中,我允许人们输入他们想要的内容,然后按下按钮,理论上,它将被发送回actionPerformed方法 但是…我没能让它起作用。这是你所需要的最低限度 执行的操作方法 public void actionPerformed(ActionEvent e

好的。因此,我将开始说,这是所有在一个类

现在,我在游戏页面上显示了一系列按钮,当按下这些按钮时,我可以打开多个不同的画面。所以我所有的按钮都在工作,所有的框架都开得很好。现在,在那些可以打开的框架内,我有一个JTextArea。在JTextArea中,我允许人们输入他们想要的内容,然后按下按钮,理论上,它将被发送回actionPerformed方法

但是…我没能让它起作用。这是你所需要的最低限度

执行的操作方法

public void actionPerformed(ActionEvent event)
{
    if(event.getActionCommand().equals("M 100"))
    {
        math100();
    }
    if(event.getActionCommand().equals("Answer M 100"))
    {
        //THIS IS WHERE IF THEY PUSH THE BUTTON ON THE FRAME, 
        //IT WILL SEND THE JTEXTAREA TEXT BACK TO HERE. THEN IT WILL DISPLAY 
        //IF THE ANSWER IS CORRECT OR NOT. BUT I CANT GET THE TEXT TO BE 
        //SENT BACK HERE....
    }
问题的方法 假设这会将用户输入的JTextArea单词发送回ActionPerformed方法中的特定if语句

public static void math100()
{
    JFrame m100Frame = new JFrame("100 Point Math Question");
    m100Frame.setSize(350,350);
    m100Frame.setLocationRelativeTo(null);
    JPanel pane = new JPanel();
    m100Frame.setContentPane(pane);

    JLabel question = new JLabel("<html><p><div WIDTH = 320><center>Round 1,291,293 to the nearest thousands, and round 8.472 to the nearest hundredth.</p><p>Put answers in box below, and have the word 'and' between the two answers.</center></width></div></html>");

    JTextArea answerArea = new JTextArea("",10,25);

    JButton answerButton = new JButton("Answer M 100");
    answerButton.addActionListener(new GamePage());


    pane.add(question);
    pane.add(answerArea);
    pane.add(answerButton);

    m100Frame.setVisible(true);
    m100Frame.toFront();
}
publicstaticvoidmath100()
{
JFrame m100Frame=新JFrame(“100分数学题”);
M100机架设置尺寸(350350);
m100Frame.setLocationRelativeTo(空);
JPanel窗格=新的JPanel();
m100Frame.setContentPane(窗格);
JLabel question=new JLabel(将1291293四舍五入到最接近的千分之一,将8.472四舍五入到最接近的百分之一。

将答案放在下面的框中,并在两个答案之间加上“和”一词。); JTextArea answerArea=新的JTextArea(“”,10,25); JButton answerButton=新JButton(“回答M 100”); addActionListener(新游戏页面()); 窗格.添加(问题); 窗格。添加(应答区); 添加(应答按钮); m100Frame.setVisible(真); m100Frame.toFront(); }

我想让它做的是,在按下MATH100帧上的按钮后,让JTextArea将该区域中的文本发送到if语句,然后检查他们输入的内容是否正确……但我无法获取发送到if语句的文本。

JTextField从方法中取出,以便其他方法可以看到它

例如:

public class ho{

 (private or public) JTextArea answerArea;  

  public ho{.....}


  static method something(){

  ....}

  method actionListener(){ 
  ...}

让我知道这是否对您有效…

我们真的需要所有这些代码来帮助您吗?把它简化成一个最小的、可编译的例子来演示这个问题。请创建一个例子来帮助我们理解你的代码。是的,我把代码简化了一点。您真正需要的是ActionPerformed和math100()方法,之后,我应该能够编写其余的方法。它仍然会产生同样的问题,其中is不会将JTextArea中的文本发送到if语句。如何对其进行编码以使其正确?您需要对
JTextArea
进行某种引用,然后您可以简单地调用其
getText
方法。更改
GamePage
以将
JTextArea
作为其构造函数中的参数之一