从另一个JPanel中的数组获取信息

时间:2014-06-08 14:53:45

标签: java arraylist

我将一些信息存储在JPanel中的ArrayList中。我想从JFrame访问此信息,以便我可以打印ArrayList的内容。

我该怎么做?

这是我到目前为止所尝试的:

    package projektarbete;

import java.awt.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.ArrayList;

public class Spelet extends javax.swing.JPanel {
ArrayList<String> Resultat = new ArrayList<>();


.....

        if(gameOver == true || vinst == true){
        btnTillbakaTillMeny.setVisible(true);
        int klick = antalKlick;
        String namn = txfNamn.getText();
        //Integer.toString(klick);
        String klickString = klick+"";
        String score = namn+"\t"+klickString;
        Resultat.add(score);

那是JPanel,信息存储在名为Restultat的ArrayList中。

这就是我尝试从JFrame中检索信息的方式:

    package projektarbete;

import javax.swing.JFrame;

public class Instruktioner extends javax.swing.JFrame {
//private final Meny Meny = new projektarbete.Meny();
    private static void close() {
      //  throw new UnsupportedOperationException("Not supported yet."); 
    }


    public Instruktioner() {
        initComponents();

    Spelet Resultat = new Spelet(); 
        jTextArea1.setText(Resultat);
    }

问题在于NetBeans在jTextArea1.setText(Resultat);

中强调了Resultat

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您不能将Resultat对象作为参数添加到setText(),因为该方法不接受该类型的参数。如果查看方法的javadoc,您将看到它所采用的类型(方法可能有多个'签名',每个签名采用不同类型的组合)。

我认为你想要做的是拥有一个类,然后是一个保存程序数据的对象。它将具有设置和获取数据以及计算需要计算的事物的必要方法。然后,任何要向用户呈现信息的对象(面板,框架等)都需要引用包含数据的类,并且可以调用方法来获取所需的内容。

这是“模型 - 视图 - 控制器”背后的基本思想 - “关注点分离”,其中处理数据的逻辑与用于显示数据的逻辑分开。它有助于您的常见情况需要更改演示文稿,但数据处理本身就可以。

答案 1 :(得分:1)

setText()正在等待一个字符串,但你给它一个ArrayList